我们可以使用加密(如 base64 和...)而不是使用 real_escape_string 来获取 GET 和 POST 数据吗?
我知道它会减慢应用程序的速度,但安全性如何?
这两个选项同样无用且容易出错。
如果您打算执行客户端加密作为保护通信客户端与应用程序通信的一种手段,您可能会发现 HTTPS / SSL 加密是比自己进行加密更可取的选择。手动加密和解密为应用程序的通信引入了另一个设计复杂性元素,这可能很容易绕过,具体取决于它的设计方式。
编辑:加密数据并不能消除注入攻击的风险,因为您需要在应用程序服务器上对其进行解码。聪明的攻击者可以在传输之前简单地搭载您的加密方法,注入他们喜欢的任何有效负载。
首先,base 64 与加密无关:它是一种编码机制,允许将任意二进制数据编码为文本,并在必要时解码回来。
其次,使用准备好的语句(或至少一个带有绑定参数的 API),而不是*_real_escape_string
.
任何人都可以使用 base64 对自己的错误注入进行 base64 编码,因此这根本不是一个好主意。此外,对 6b4 编码数据的自定义盐进行逆向工程也相当容易,所以没有。