如何利用Web项目中的漏洞(使用Hard-coded Cryptographic Key)?
How to exploit vulnerability(Use of Hard-coded Cryptographic Key) in web project?
大多数安全指南都说使用硬编码加密密钥是危险的,因为如果代码中的加密密钥泄露给黑客,黑客可以读取使用加密算法(例如 AES256)的编码数据
所以指南说开发人员必须将加密密钥存储在源代码之外。 (如下图)
enter image description here
但是,我想知道将密钥存储在源代码之外是否安全?
假设加密密钥泄露给了黑客,这意味着黑客已经获得了整个项目的源代码,因为没有其他方法可以知道源代码中的加密密钥。
因此,尽管开发人员将加密密钥存储在外部源代码中,但这是危险的
所以我的问题是
在 web proejct 中,除了获取整个项目源代码的方法外,是否有任何方法可以知道存储在源代码中的加密密钥?
在网络项目中,假设我正确理解您的意思,那么您的所有代码都是私有的。您只输出您告诉您的服务器输出的内容,源代码是不可访问的...除非有人真的不知道他们在做什么。只需确保使用 HTTPS 来保护您的客户端,否则整个万维网也会发现。
使用反汇编程序,您在任何应用程序中的大部分独特字符串都可以获取。文件也是,据我所知。证书固定听起来很接近你在说什么,我已经修改了一个 Snapchat APK 来接受我的证书颁发机构,这样我就可以在上面执行 MITM。在我的 phone 上信任 CA 是不够的,因为该应用程序有一个不太容易被攻破的安全功能。仅当 a.) 用户想要解密自己的数据,或 b.) 某人 way 对其 phone.[=10= 的访问权限过多时,它才真正起作用]
这可能稍微超出了范围,但是保护服务器端的系统功能不被客户端滥用的一个好方法是为他们编写一个 API 来精确控制他们的输入。仅供参考。
大多数安全指南都说使用硬编码加密密钥是危险的,因为如果代码中的加密密钥泄露给黑客,黑客可以读取使用加密算法(例如 AES256)的编码数据 所以指南说开发人员必须将加密密钥存储在源代码之外。 (如下图)
enter image description here
但是,我想知道将密钥存储在源代码之外是否安全? 假设加密密钥泄露给了黑客,这意味着黑客已经获得了整个项目的源代码,因为没有其他方法可以知道源代码中的加密密钥。 因此,尽管开发人员将加密密钥存储在外部源代码中,但这是危险的
所以我的问题是 在 web proejct 中,除了获取整个项目源代码的方法外,是否有任何方法可以知道存储在源代码中的加密密钥?
在网络项目中,假设我正确理解您的意思,那么您的所有代码都是私有的。您只输出您告诉您的服务器输出的内容,源代码是不可访问的...除非有人真的不知道他们在做什么。只需确保使用 HTTPS 来保护您的客户端,否则整个万维网也会发现。
使用反汇编程序,您在任何应用程序中的大部分独特字符串都可以获取。文件也是,据我所知。证书固定听起来很接近你在说什么,我已经修改了一个 Snapchat APK 来接受我的证书颁发机构,这样我就可以在上面执行 MITM。在我的 phone 上信任 CA 是不够的,因为该应用程序有一个不太容易被攻破的安全功能。仅当 a.) 用户想要解密自己的数据,或 b.) 某人 way 对其 phone.[=10= 的访问权限过多时,它才真正起作用]
这可能稍微超出了范围,但是保护服务器端的系统功能不被客户端滥用的一个好方法是为他们编写一个 API 来精确控制他们的输入。仅供参考。