网站如何做到安全可靠,这是我们要思考的问题。那么后台如何屏蔽一个恶意攻击,如何屏蔽用户IP.
诸如我们自己的一个小小网站,也不免受到外界的攻击,因为我们的网站都是对外开放的,都会暴露在互联网中,这也是让我们的网站更好的让许多人知道自己的网站,如果我们的网站能够吸引很多人浏览和被喜欢,那么你的网站就会被搜索引擎所搜索例如国内的-百度、搜狗、360等等。当然也会有国外的最好的搜索引擎所搜索,如果你的网站没有设置权限,那么你的网站就会被国外的人访问。这也就可能免受不了你的网站有更多的人访问,这样一来,你的网站也许可能被不怀好意的人,进行在你的网站上做出不好的行为,例如攻击你的网站等,评论垃圾文字,注册无效的邮箱等等,这些都是我们可能每天遇到过的。
A:那么我们如何禁止恶意的行为呢?
首先,我们要清楚我们的网站是如何发现的有不安全的行为的,能够发现这样的行为这样我们才能需要及时的补救,我们最好的方法就是每天检查日志,这里指的是服务器日志,或许你不一定每天检查,但是一定要不定时的检查,这样才能保证你的服务器运行良好,才能更好的服务于大家。
其次,我们在找到了问题就要解决,通过SKY8G网的这篇文章,将会学到如何让自己服务器安全的运行,这里我们讲述一个重要的文件目录文件权限。.htaccess文件,这个文件只有是Apache服务器的时候才起作用,Nginx服务器是不起作用的。接下来我将讲述如何利用htaccess文件进行屏蔽IP访问,阻止恶意攻击网站行为等等。
B:.htaccess是什么?何时(不)使用.htaccess文件?
.htaccess是Apache Web服务器的配置文件。它是一个非常强大apache配置文件,可用于修改Apache配置,而无需编辑Apache配置文件。配置好后立即生效,不必重启apache服务器。如何创建此配置并使用它来限制目录列表和IP地址,以及处理重定向。
.htaccess文件应该用于需要在每个目录的基础上对服务器进行配置更改但在服务器系统上没有root访问权限的情况。如果服务器管理员不愿意为了进行频繁的配置更改,可能需要允许各个用户自己在.htaccess文件中进行这些更改。
C:配置.htaccess文件
一般情况下我们在安装apache服务器后,配置好apche配置文件之后,我们如果经常更改策略,那么我们就可以更改项目安装的跟目录下.htaccess文件了,这样我们不用重启服务器,操作简单。注:本篇配置是使用的 Apache 2.4+
1.如何想屏蔽某个IP访问:
1 2 3 4 5 6 | #我们可以使用RequireAll <RequireAll> Require all granted ##可以使用屏蔽IP,多个用空格隔开 Require not ip 10.234.31.163 10.252.46.165 </RequireAll> |
我们把上面的代码直接写到htaccess文件里即可,屏蔽两个IP地址
2.如何屏蔽用户代理User-Agent:
1 2 3 4 5 | SetEnvIfNoCase User-Agent (sqlmap|Ubuntu) BADBOT <RequireAll> Require all granted Require not env BADBOT </RequireAll> |
如何即想屏蔽IP又想屏蔽某个用户的代理可以使用:
1 2 3 4 5 6 7 | SetEnvIfNoCase User-Agent (sqlmap|Ubuntu) BADBOT <RequireAll> Require all granted Require not env BADBOT ##可以使用屏蔽IP,多个用空格隔开 Require not ip 10.234.31.163 10.252.46.165 </RequireAll> |
这样及屏蔽了ip又屏蔽了代理
例如:某个访客通过sqlmap恶意的扫描你的网站,他的user-agent
1 2 3 | 61.151.207.140 - - [18/Jun/2020:19:30:34 +0800] "GET / HTTP/1.1" 200 117397 0 "https://www.sky8g.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) sqlmap " |
测试结果:
1 2 3 4 5 6 7 8 9 10 11 12 | [****@*****~]# curl -I -A 'sqlmap' https://www.sky8g.com HTTP/1.1 403 Forbidden Date: Sat, 18 Jun 2020 13:11:20 GMT Server: Apache X-Frame-Options: SAMEORIGIN Last-Modified: Wed, 15 Sep 2020 12:00:23 GMT ETag: "b6-57251231e84f4754c" Accept-Ranges: bytes Content-Length: 1182 Vary: Accept-Encoding Content-Type: text/html; charset=UTF-8 [****@*****~]# |
3.如何进制用户通过TRACK|TRACE方法访问网站:
1 2 3 4 5 6 | <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) [NC] RewriteRule ^(.*)$ - [F] </IfModule> |
测试结果:
1 2 3 4 5 6 7 8 9 10 11 12 | [****@*****~]# curl -I -X 'TRACK' https://www.sky8g.com HTTP/1.1 403 Forbidden Date: Sat, 18 Jun 2020 13:11:20 GMT Server: Apache X-Frame-Options: SAMEORIGIN Last-Modified: Wed, 15 Sep 2020 12:00:23 GMT ETag: "b6-57251231e84f4754c" Accept-Ranges: bytes Content-Length: 1182 Vary: Accept-Encoding Content-Type: text/html; charset=UTF-8 [****@*****~]# |
4.如何屏蔽用户的引用HTTP_REFERER判断:
1 2 3 4 5 6 | <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP_REFERER} ^.*baidu\.com [NC] RewriteRule .* - [F] </IfModule> |
例如屏蔽百度过来的访问,就可以使用上面的例子。
测试结果:
1 2 3 4 5 6 7 8 9 10 11 12 | [****@*****~]# curl -I -e 'baidu.com' https://www.sky8g.com HTTP/1.1 403 Forbidden Date: Sat, 18 Jun 2020 13:11:20 GMT Server: Apache X-Frame-Options: SAMEORIGIN Last-Modified: Wed, 15 Sep 2020 12:00:23 GMT ETag: "b6-57251231e84f4754c" Accept-Ranges: bytes Content-Length: 1182 Vary: Accept-Encoding Content-Type: text/html; charset=UTF-8 [****@*****~]# |
5.如何使用一级域名跳转到二级域名(例如:baidu.com => www.baidu.com):
1 2 3 4 5 6 7 8 | <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^magento\.com$ [NC] RewriteRule ^(.*)$ https://www.magento.com/$1 [L,R=301] </IfModule> |
这样你访问地址栏:输入magento.com 地址栏就会里就会显示跳转后的www.magento.com了 。
6.如何通过htaccess文件进行重定向:
1 2 3 4 5 6 7 | <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/(a|b)\.(html)$ RewriteRule ^(.*)$ /c\.html[L] </IfModule> |
例如,让url a.html或者b.html重定向到c.html即可以使用上面。
7.如何想使用所有的策略,则代码如下设置:
即使把所有策略合并即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) [NC] RewriteRule ^(.*)$ - [F] RewriteCond %{HTTP_REFERER} ^.*baidu\.com [NC] RewriteRule .* - [F] RewriteCond %{REQUEST_URI} ^/(a|b)\.(html)$ RewriteRule ^(.*)$ /c\.html[L] RewriteCond %{HTTP_HOST} ^magento\.com$ [NC] RewriteRule ^(.*)$ https://www.magento.com/$1 [L,R=301] </IfModule> |
好了通过以上例子,想必你对htaccess有所了解是不是很强大呀,还等什么呢,赶快设置你的服务器吧,祝你好运,SKY8G将会提供给你最好的优质文章,供你阅读,如果你喜欢我们的文章请点击右边栏目订阅我们的文章。