如何防止通过POST方法进行黑客入侵

问题描述 投票:2回答:5

我有一个使用$ _POST变量存储到数据库的脚本。

[有些用户试图通过使用自己的发布表单方法或使用curl将发布变量和值发送到服务器来欺骗系统。

如何防止这种攻击?

谢谢

php xss http-post
5个回答
4
投票

无法进行预防(POST安全是一个过分简化的神话)。您必须使用多种方法来验证传入的数据:

  • CSRF令牌可帮助防止任意形式的提交机器人(但不能防止手工篡改)
  • 增加期望的形式值,assert()表示所有形式的值都存在,并且没有多余的字段显示
  • 消毒并过滤期望值。我以$_POST->text->in_array("field", "abc,def,xyz")为例

0
投票

无法阻止人们发出任意HTTP请求。

您如何为自己辩护,取决于请求的内容及其构成攻击的原因。


0
投票

您可以通过capcha的一种保护来确保从表单中生成POST,或者可以清理每个$ _POST变量,如果不符合条件,则可以拒绝整个POST数据。


0
投票

POST请求不是100%安全的。这仅表示数据存储在HTTP(s)请求的正文中。对于GET请求,数据存储在URL中。鼓励使用POST请求发送敏感数据。

由于数据存储在POST请求的正文中,而不是URL中,因此您的敏感数据无法添加为书签。此外,如果未正确定义引荐来源标头,则还可以将URL中存储的敏感数据转移到恶意网站。

POST请求可能因此被黑,如果您使用的是HTTP协议而不是HTTPS协议。攻击者所需要做的就是在中间攻击中执行一次操作(嗅探在客户端和服务器之间传输的数据包)。一旦捕获到数据包,攻击者便可以轻松查看存储在POST请求正文中的数据。


-1
投票

此攻击的名称为“ SQL注入”。保护它并不难。如果您的值为字符串,则只需使用magic_quotes;如果您的值为数字,则使用过滤器witch跳过在线编号。

© www.soinside.com 2019 - 2024. All rights reserved.