加密VS转发发布数据?

时间:2013-09-13 15:00:48

标签: php security

我们可以使用加密(如base64和...)而不是使用real_escape_string进行GET和POST数据吗?

我知道它会降低应用程序速度,但安全性如何呢?

4 个答案:

答案 0 :(得分:5)

都不是。

这两个选项同样无用且容易出错。

  • 首先,您必须将SQL查询与数据库区分开来。根本不需要对后者进行数据转换。
  • 接下来,您必须为SQL查询正确格式化您的数据。不是“逃避”它。
  • 最后,由于格式规则非常复杂到普通PHP用户难以理解的程度,因此他应该使用预准备语句,因为后者会为他正确格式化数据。 / LI>

答案 1 :(得分:0)

如果您打算将客户端加密作为保护通信客户端与应用程序通信的一种手段,您可能会发现HTTPS / SSL加密是自行完成此操作的首选方法。手动加密和解密为您的应用程序的通信引入了设计复杂性的另一个元素,根据其设计方式,这可能很容易规避。

编辑:加密数据不会抵消注入攻击的风险,因为您需要在应用程序服务器上对其进行解码。一个聪明的攻击者可以简单地在传输之前捎带你的加密方法,注入他们喜欢的任何有效载荷。

答案 2 :(得分:0)

首先,base 64与加密无关:它是一个编码机制,它允许将任意二进制数据编码为文本,并在必要时解码

其次,使用prepared statements(或至少是带有绑定参数的API),而不是*_real_escape_string

答案 3 :(得分:-1)

任何人都可以使用base64编码自己的错误注入,因此这根本不是一个好主意。 对6b4编码数据进行反向工程也很容易,因此没有。