昨晚,一个shell脚本能够执行一些修改我的.htaccess文件的linux命令,从而简单地重定向到广告网站。我已经从.htaccess中删除了重定向,但我正在尝试采取预防措施,以免再次发生这种情况。
我从我的服务器查看了访问日志,它显示了以下条目:
partners.xxxxxxxx.com-Jul-2016.gz:184.168.192.26 - - [03/Jul/2016:10:40:01 -0500] "GET /e5nbwvcxef.php HTTP/1.1" 200 61 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
partners.xxxxxxxx.com-Jul-2016.gz:69.64.37.219 - - [03/Jul/2016:10:40:03 -0500] "POST /e5nbwvcxef.php HTTP/1.1" 200 20 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
我记得很久以前如果用户有这种访问权限就很糟糕。任何人都可以了解我可以做些什么来保护我的服务器,以便他们无法上传这样的东西?谢谢!
答案 0 :(得分:2)
首先,您要阻止访问.htaccess
文件,您可以使用以下方式执行此操作:
<Files .htaccess>
order allow,deny
deny from all
</Files>
然后,您可以实际重命名.htaccess
文件以帮助隐藏它免受潜在威胁,这并不意味着它们无法找到它......但它肯定会让它变得更难!
AccessFileName thehtfile.ess
然后,您可以使用多种方法来帮助预防&#34; hacks&#34;。首先,阻止URL中包含<script>
标记的所有脚本:
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
然后,您可以阻止尝试通过网址设置PHP Globals
变量的任何脚本:
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]
阻止尝试通过网址使用base64_encode
的任何脚本:
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
阻止尝试通过网址修改a_REQUEST
变量的任何脚本:
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})
最后,禁止在目录中使用脚本..
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI
有很多不同的选择,我想还有更多!这些是我在.htaccess
中使用的一些内容。我希望这些有助于防止将来发生类似攻击!它确实很糟糕:/
答案 1 :(得分:1)
应该有很多要点[MySQL注入,......]但非常有效
wwwrun
用户无法写入包含脚本的目录。.htaccess
- 如果可能的话。至少,所有者不得与wwwrun
用户匹配。 wwwrun
user是Apache运行的用户。