要知道,一个网站的运营并非易事,除了前期的研发投入、后期的运营投入外,网站的安全性也是很重要的。只要你的网站暴露在公网上,肯定会受到很多攻击,而这些攻击中有一种攻击并不需要篡改网站源码就能发起攻击,那就是CSRF攻击。
什么是CSRF?
CSRF是“跨站请求伪造”的英文简称,它主要是利用站点鉴权漏洞来实现攻击的。通俗的说就是:攻击者借用了你的身份,以你的名义发起了恶意请求,而对于服务器来说这个请求是完全合法的,比如借助你的名义来:购买商品、转帐、删除某些数据等。
CSRF攻击原理
导致受到CSRF攻击的根源在于网站的鉴权机制不严谨,没有判断用户的请求来源是否正常。
CSRF防御措施
知道了CSRF攻击原理后,我们就可以通过很多措施来进行防范了,方案有以下几类:
1、验证请求来源(HTTP Referer)
HTTP请求头信息中有个字段是Referer,它记录了当前请求的上一级请求地址。我们可以判断当前请求来源是否是当前域,若不是,则服务器端拒绝响应。
但是Referer是可以伪造的!
2、请求中添加Token验证
要抵御CSRF就要在请求中加入一些让第三方无法伪造的信息,而且这些信息不能存放在Cookie中!所以我们可以在请求中加入Token,然后由服务器端验证此Token是否合法。
3、验证码
对于一些敏感操作可以要求输入验证码进行确认操作,这样就完全解决了CSRF了,只是操作流程上麻烦一些。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
如何巧妙防御Web攻击?
要知道,网站放在公网服务器上,会被各类人访问,其中也包含一些黑客,所以网站是时刻面临着被攻击的风险。
WEB攻击种类也是相当多的,最常见的WEB攻击方式有以下这些:
-
SQL注入;
-
XSS、CSRF攻击;
-
应用漏洞攻击,常见的是上传漏洞、富文本编辑器漏洞;
-
DDoS攻击等等。
那我们在开发及运营阶段如何规避这些攻击风险呢?结合我多年经验,提供一些方案供大家参考:
1、SQL注入的防御:
-
对用户输入的数据务必做检查,过滤或转义危险字符,如:单引号、双引号、SQL关键字等;
-
SQL语句不要用拼接字符串的方式构建,而应该使用SQL预编译的方式来处理参数绑定;
2、XSS、CSRF攻击的防御
-
不要相信用户任何的输入,对用户输入的数据做过滤或转义,比如过滤掉:JS脚本、CSS样式;
-
表单Token;
3、应用漏洞防御
-
严格控制服务器上各目录及文件的写入、执行权限;
-
需要对上传文件的格式做限定;
-
一些富文本编辑器自带一些管理后台要删除掉;
-
对于CMS类程序,一有漏洞公布时第一时间修复;
4、DDoS攻击防御
-
最经济实用的方法就是使用CDN加速,一来加速资源访问,二来隐藏了源服务器的IP;
-
碰到大流量DDoS时联系机房做流量清洗,必要时换高防IP。
综上,对于WEB应用而言攻击种类很多,但是现在不少CDN厂商在CDN基础上提供了安全监测功能,它会监测GET请求,对于一些不合法的参数会给过滤掉,这样也就减少了不少攻击。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
服务器被攻击了,有什么办法解决吗?
众所周知,服务器是用来提供特定服务的计算机(集群),因为服务不可中断,所以服务器都是7x24小时全天候运行的。但由于服务器长期暴露在公网上,难免会受到黑客的攻击。
很多朋友在遇到服务器攻击后会不知所措,无从下手,只能任由黑客肆意妄为。那在这里我会给出一些方案,让大家一来做好服务器的防御工作,另外在被攻击时能从容处理。
服务器攻击类型有哪些?
作为服务器管理员来说,当服务器受到攻击时我们要清楚是哪种类型的攻击,这样才好对标解决问题。总体来说服务器常遇到的攻击有以下几种:
1、DDoS(分布式拒绝服务)攻击
这个DDoS攻击其实就是流量攻击,它的原理就是利用很多客户端向服务器发送大量的请求,使服务器的网络过载、服务器负载飙升,从而让其它合法用户无法正常请求服务器。从本质上说DDoS带来的流量也是正常的流量,所以一般DDoS是很难防御的。
DDoS攻击针对的是服务器的网络层。
2、CC攻击
CC攻击原理就是黑客利用大量的主机(客户端)向我们的服务(特别是消耗CPU时间的服务)不停的请求,造成服务器资源浪费,CC攻击时服务器CPU常常是占满状态的。
CC攻击针对的是WEB应用层(如网站)。
3、WEB攻击
这种攻击主要是利用当前的WEB应用存在的漏洞进行系统及数据破坏的行为,手段通常有:
-
SQL注入
-
XSS、CSRF攻击
-
爆库攻击等
4、劫持攻击
攻击者通过攻击DNS服务器或者更改DNS服务器来将请求重定向至其它服务器,比如钓鱼网站就是一种劫持。
5、服务器系统及应用漏洞攻击
这种就是嗅探服务器及其系统上的应用是否存在可利用的漏洞,然后针对性的攻击,比如Redis提权、弱口令提权等。
服务器攻击如何处理?
服务器受到攻击后,我们要针对性处理,以下是对应的解决方案:
1、DDoS攻击处理方案
-
联系机房做流量清洗,必要时使用高防IP;
-
使用CDN来分流;
-
实在不行把域名解析至 127.0.0.1 ;
2、CC攻击处理方案
-
系统要合理利用缓存,对于一些结果做好缓存,避免每次都去重复计算;
-
利用软防限制每个IP的连接数限制;
-
请求过多时启用验证码验证是否是机器行为;
3、WEB攻击处理方案
-
对于GET、POST请求做过滤,将一些敏感字符过滤掉;
-
对于用户提交的数据,务必做好数据类型检查和过滤;
-
数据库SQL语句不要使用拼接字符串这种形式,应该采用预编译和参数绑定这种方式;
-
如果WEB应用是采用开源CMS或者框架二次开发的,务必及时修复其官方发布的补丁;
-
站点目录及文件的读、写、执行权限要严格控制,特别是要注意upload目录的权限,防止上传了动态脚本甚至能直接执行;
4、服务器系统及应用漏洞处理方案
-
做好端口策略,防火墙里只开放必要的端口(除了WEB端口外,其它端口要特别留意);
-
服务器上不常用的服务全部停止掉;
-
WEB程序被破坏时使用备份文件还原;
服务器安全防御策略
只有服务器提前做好安全防御措施才能最大程度的避免服务器被攻击,结合我多年运维经验建议大家:
1、数据备份很重要
如果服务器系统受到破坏,而你又没有备份数据,那危害就相当大了。所以我们要对系统、程序、数据库、配置、其它数据要做好备份,以防万一。
2、服务器IP隐匿
-
网站走CDN加速;
-
禁用服务器ICMP;
3、防火墙策略严格设置
-
只开放必要的端口,其它端口一律不开放;
-
同IP特定时间段内限制连接数;
4、服务器安全策略
-
不要使用弱口令;只允许特定IP或者用户登录服务器;
-
对于不需要的服务一律禁用;
-
服务器要最小化安装,不要在服务器上乱装软件应用;
-
服务器文件及目录权限要严格控制,避免777这种权限;
5、养成查看服务器日志的习惯
很多攻击在前期都是有征兆的,黑客在攻击前都会做很多尝试。所以我们要把服务器上相关的日志做好审查,比如登录日志等。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!