当前位置: 首页 > 面试题库 >

Java代码安全性

蓬威
2023-03-14
问题内容

除了迷惑之外,还有其他方法可以防止罐子被其他人打开吗?问题是我不希望任何人访问代码,这就是为什么我不喜欢Java。从我使用的反编译器来看,用C#和Java编写的程序具有完好无损的功能,就像变量名一样,这使得访问非免费程序变得容易。更糟糕的是,给出源代码。


问题答案:

上面的评论涵盖了大多数这些要点,但是我将在这里对其进行扩展:

如果您的代码在用户的计算机上运行,​​则用户可以反编译您的代码。不管是哪种语言。Java,C,空格,笨蛋,没关系。如果代码在计算机上运行,​​则人类可以读取它。即使您使用自己的自制程序语言和编译器,编译后的代码仍将是一系列标准机器指令,这些反编译器将轻松地将其转换为C或任何您喜欢的语言的可读代码。

没有例外。 忘掉它。

但是有一些方法可以满足您的要求:保护一些秘密的业务逻辑。一种简单的方法是将业务逻辑放在您自己的计算机上,并通过Web服务公开它。用户仍然可以看到客户端请求和服务响应,但是您的逻辑是一个黑匣子。

您也可以制造自己的计算机,将其锁定,然后分发给用户。请注意,尽管这是可行的,但从技术上来说,正确地进行操作相当困难(请考虑所有被黑的游戏机和智能手机),这将大大增加服务成本。



 类似资料:
  • Rust 主要魅力是它强大的静态行为保障。不过安全检查天性保守:有些程序实际上是安全的,不过编译器不能验证它是否是真的。为了写这种类型的程序,我们需要告诉编译器稍微放松它的限制。为此,Rust 有一个关键字,unsafe。使用unsafe的代码比正常代码有更少的限制。 让我们过一遍语法,接着我们讨论语义。unsafe用在两个上下文中。第一个标记一个函数为不安全的: unsafe fn danger

  • 第一章 SonarQube简介 1.1 SonarQube介绍 Sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量 通过插件形式,可以支持包括 java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy,HTML,Python,PHP,XML等等二十几种编程语言的代码质量管理与检测 Sonar可以从以下七个维度检测代码质量 不遵循代码标准 sonar可以

  • 当C#被unsafe修饰符标记时,C#允许在代码块的函数中使用指针变量。 unsafe code或非托管代码是使用pointer变量的代码块。 Note - 要在codingground执行本章中提到的程序,请在Project 》》 Compile Options 》》 Compilation Command设置编译选项。 mcs *.cs -out:main.exe -unsafe" Point

  • 当代码段被 unsafe 修饰符标记时,C# 允许该代码段中的函数使用指针变量,故使用了指针变量的代码块又被称为不安全代码或非托管代码。 注意: 若要在 codingground 中执行本章的程序,请将 Project >> Compile Options >> Compilation Command to 中的编辑项设置为 mcs *.cs -out:main.exe -unsafe” 指针 指

  • 运行静态扫描时,我收到一个Veracode错误:操作系统命令(“操作系统命令注入”)中使用的特殊元素的中和不当(CWE ID 78) 应用程序调用一个进程,其中包含我从前端收到的参数(应用程序在内部使用,这是一个userId)。 我如何解决这个Veracode问题?有没有“安全”的方式来运行流程?

  • 我知道在java源代码中以字符串形式存储密码是不安全的。通常,最好将其存储在具有char[]类型的变量中。以以下形式存储密码安全吗? 字符串“my password”是否出现在编译的java类文件中?在我看来,在编译源代码之后,“我的密码”不会出现在我的类文件中。但我仍然不能100%确定我可以使用描述的表示来存储密码。 我能否安全地使用这个结构,并确保密码受到保护,除非有人从源代码中获取密码? 编