我们可以使用加密(如base64和...)而不是使用real_escape_string进行GET和POST数据吗?
我知道它会降低应用程序速度,但安全性如何呢?
答案 0 :(得分:5)
这两个选项同样无用且容易出错。
答案 1 :(得分:0)
如果您打算将客户端加密作为保护通信客户端与应用程序通信的一种手段,您可能会发现HTTPS / SSL加密是自行完成此操作的首选方法。手动加密和解密为您的应用程序的通信引入了设计复杂性的另一个元素,根据其设计方式,这可能很容易规避。
编辑:加密数据不会抵消注入攻击的风险,因为您需要在应用程序服务器上对其进行解码。一个聪明的攻击者可以简单地在传输之前捎带你的加密方法,注入他们喜欢的任何有效载荷。
答案 2 :(得分:0)
首先,base 64与加密无关:它是一个编码机制,它允许将任意二进制数据编码为文本,并在必要时解码
其次,使用prepared statements(或至少是带有绑定参数的API),而不是*_real_escape_string
。
答案 3 :(得分:-1)
任何人都可以使用base64编码自己的错误注入,因此这根本不是一个好主意。 对6b4编码数据进行反向工程也很容易,因此没有。