前端常见的攻击

参考:https://segmentfault.com/a/1190000006672214?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly#articleHeader14

1、XSS攻击(跨站脚本攻击)

XSS(跨站脚本攻击),一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码(javascript、css、html)植入页面中,这样当别人访问到该页面时也执行了嵌入的代码进行一些操作。

 

1.1、防范XSS攻击

  1. 转义用户的输入,把用户的输入解读为数据而不是代码
  2. 校验,对用户的输入及请求都进行过滤检查,如对特殊字符进行过滤,设置输入域的匹配规则等。
  3. 使用cookie的HttpOnly属性,加上了这个属性的cookie字段,js就无法进行读写了。

 

2、CSRF攻击(Cross Site Request Forgery,跨域请求伪造)

CSRF(Cross Site Request Forgery,跨域请求伪造),是一种对网站的恶意利用。

原理:诱导用户跳转到新的页面,利用服务器的验证漏洞和用户在前一个网站的登入状态,来模拟用户进行操作。

比如:CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份在攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的。比如说你登录了一个普通网站,然后又打开另一个恶意网站,那个恶意网站就可能会冒充你的身份来进行一些操作。具体例子参考:https://segmentfault.com/a/1190000006672214?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly#articleHeader14https://www.cnblogs.com/lovesong/p/5233195.html

 

2.1、防范CSRF攻击

  1. 使用验证码,只要是涉及到数据交互就先进行验证码验证。这个方法可以完全解决CSRF,但是出于用户体验考虑,网站不能给所有的操作都加上验证码。因此验证码只能作为一种辅助手段,不能作为主要解决方案。
  2. 为每个表单添加令牌 token 并验证。
  3. 利用 cookie 的 sameSize 属性规定其他网站不能使用本网站的 cookie。
  4. 验证HTTP Referer字段,该字段记录了此次HTTP请求的来源地址。

 

3、DNS劫持

DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,只把在要劫持的域名请求名单之外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。

很多的时候,我们的网站不是直接就访问到我们的服务器上的,中间会经过很多层代理。如果在某一个环节,数据被中间代理层的劫持者所截获,他们就能获取到使用你网站的用户的密码等保密数据。比如说,我们经常会在各种饭馆里面连一些wifi,此时WiFi就是中间代理,如果这个wifi是黑客所建立的热点wifi,那么黑客就可以截获该用户收发的所有数据。所以建议网站都使用https进行加密,这样就算网站的数据能被拿到,黑客也无法解开。

 

4、SQL注入

SQL 注入攻击是对WEB服务器进行攻击,通过往服务器传一些参数或者数据,而如果服务器是通过传过来的数据来拼接 SQL 语句的话,就有可能会执行攻击者发送给服务器的 SQL 语句,由此达到攻击的目的。简单的说就是在 post/get 表单、输入域名或页面请求的查询字符串中插入 SQL 命令,最终使web服务器执行恶意 SQL 命令的过程。

 

4.1、如何防止 SQL 注入攻击

1)不要使用动态SQL,避免将用户提供的输入直接放入SQL语句中

2)限制数据库权限和特权。将数据库用户的功能设置为最低要求,这将限制攻击者可以执行的操作

3)避免直接向用户显示数据库错误,否则攻击者可以使用这些错误消息来获取有关数据库的信息

通过SQL注入工具可以了解SQL注入是如何实现的,SQL注入工具可参考:https://blog.csdn.net/qq240263894/article/details/71076575

posted @ 2019-03-02 23:09  wenxuehai  阅读(2532)  评论(0编辑  收藏  举报
//右下角添加目录