一.问题情况
由于程序代码漏洞造成网站被入侵被黑的问题不在少数,但是又由于php的eval函数无法禁止使用,因为程序代码中还有调用.就想到了能否禁止POST上传来限制部分入侵上传.如果网站前台有用到POST方法的话就不要限制了.会影响正常功能.
二.解决办法
服务器使用nginx做web服务提供,就写一个if判断用来限制指定IP可以POST HEAD等操作,其他IP都拒绝.
1 2 3 4 5 6 7 8 9 10 |
set $test 0; if ($request_method !~* GET) { set $test "${test}1"; } if ($remote_addr !~* "(192.168.0.2)") { set $test "${test}2"; } if ($test = "012") { return 403; } |
set $test 0;设置一个变量$test初始数值0
$request_method !~* GET判断请求类型不是GET则set $test "${test}1"给$test数值追加1
$remote_addr !~* "(192.168.0.2)"判断IP不为192.168.0.2则set $test "${test}2"给$test数值追加2
最后判断$test是否为012,如果是则返回403.这样就只有192.168.0.2这1个IP可以正常POST数据了.