我有一个使用$ _POST变量存储到数据库的脚本。
[有些用户试图通过使用自己的发布表单方法或使用curl将发布变量和值发送到服务器来欺骗系统。
如何防止这种攻击?
谢谢
无法进行预防(POST安全是一个过分简化的神话)。您必须使用多种方法来验证传入的数据:
$_POST->text->in_array("field", "abc,def,xyz")
为例无法阻止人们发出任意HTTP请求。
您如何为自己辩护,取决于请求的内容及其构成攻击的原因。
您可以通过capcha的一种保护来确保从表单中生成POST,或者可以清理每个$ _POST变量,如果不符合条件,则可以拒绝整个POST数据。
POST请求不是100%安全的。这仅表示数据存储在HTTP(s)请求的正文中。对于GET请求,数据存储在URL中。鼓励使用POST请求发送敏感数据。
由于数据存储在POST请求的正文中,而不是URL中,因此您的敏感数据无法添加为书签。此外,如果未正确定义引荐来源标头,则还可以将URL中存储的敏感数据转移到恶意网站。
POST请求可能因此被黑,如果您使用的是HTTP协议而不是HTTPS协议。攻击者所需要做的就是在中间攻击中执行一次操作(嗅探在客户端和服务器之间传输的数据包)。一旦捕获到数据包,攻击者便可以轻松查看存储在POST请求正文中的数据。
此攻击的名称为“ SQL注入”。保护它并不难。如果您的值为字符串,则只需使用magic_quotes;如果您的值为数字,则使用过滤器witch跳过在线编号。