目前常见的web网络安全漏洞

 XSS(Cross Site Scripting)跨站脚本攻击。

  1.存储型XSS
黑客主要通过在站点的文本输入区域嵌入脚本标签包裹的恶意代码,然后提交到服务器端,服务器将提交的信息保存后,只要其他人浏览了包含黑客恶意代码的页面后,恶意代码就会执行,可能侵害其他用户的信息。

2.反射型XSS
黑客将一段含有恶意代码的请求包装到某个链接上,然后诱导用户去点击。用户点击后含有恶意代码的请求提交给服务器端,服务器又将该含有恶意代码的请求返回给用户,恶意代码就在客户端执行。

3.DOM型XSS
黑客直接在客户端web资源传输过程中或者用户使用网页的过程中修改Web页面的数据,嵌入恶意脚本,该过程不涉及服务端。

XSS攻击应对措施:

将cookie等敏感信息设置为HttpOnly,不允许通过document,js获取cookie。
启用CSP,内容安全策略,只有在白名单内的内容才能正常运行(JS, Image等)。
在前端以及后端对所有的输入信息做严格的校正,过滤掉不合法的输入,同时转义常用的可能导致恶意脚本嵌入的字符,如尖括号,双引号等字符。

HttpOnly是包含在http返回头Set-Cookie里面的一个附加的flag,所以它是后端服务器对cookie设置的一个附加的属性,在生成cookie时使用HttpOnly标志有助于减轻客户端脚本访问受保护cookie的风险(如果浏览器支持的话)
通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击。
 

 CSRF(Cross Site Request Forgery)跨站请求伪造

跨站请求伪造是指黑客可以冒充用户向目标站点发送请求,从而获取用户信息,篡改用户数据。跨站请求伪造需要满足以下三个条件才能发动。

①目标站点有CSRF漏洞。

②用户登录过目标站点,而且Session还在有效期内。

③用户打开一个第三方站点。

此时第三方站点可以使用用户的Session来伪造请求给目标站点。

CSRF攻击应对措施:

将Session的有效期设置得短一些。
服务端通过请求中的Origin和Referer头字段判断请求的来源,如果请求的来源和目标站点不同源,则大概率是CSRF,服务端拒绝执行该请求。
在执行一些重要的操作的时候,在请求中添加Token验证信息。在页面交互元素中预设好随机

3. SQL注入攻击


拼接SQL查询语句的时候未仔细筛选过滤条件,黑客可以输入畸形的数据来歪曲语义。或者通过屏幕上的报错语句推测SQL查询语句。

SQL注入攻击的应对措施:

禁止目标网站通过动态拼接字符串的方式访问数据库
减少不必要的数据库报错信息的抛出。
过滤掉不必要的SQL保留字比如Where等。

4. 点击劫持攻击
点击劫持攻击实现方式:通过监听鼠标移动,让透明的iframe始终处于用户鼠标下,诱使用户点击看似无害的按钮,实则点击了透明iframe,然后执行一些危险操作。

点击劫持攻击的应对措施:

服务端添加X-Frame-Option这个响应头,这样浏览器就会阻止嵌入的网页的加载。
JS 判断顶层视口的域名是不是和本页面的域名一致,不一致则不允许操作


5. 中间人攻击


中间人攻击可以在HTTPS协议下仍然对通信的信息进行窃听、篡改以及身份伪造。顾名思义,中间人攻击就是黑客同时拦截了客户端和服务端的信息,充当了信息中转站的作用。

首先,在客户端与服务端建立连接时,黑客首先拦截到服务器准备传送给客户端的公钥,然后自己生成一对非对称加密的公私钥。黑客将自己的公钥发送给客户端。

之后客户端接收到黑客公钥后,客户端生成之后通讯所需要用的对称加密密钥,用黑客公钥加密客户端的对称加密密钥,之后传送给服务器。

随后黑客拦截客户端传输的数据,用黑客私钥解密,获取到客户端的对称加密密钥。再用服务器公钥加密该对称加密密钥,传送给服务器。

最后服务器解密获取到对称加密密钥,服务器和客户端就开始只用对称加密密钥进行加密通信,而黑客手上有对称加密的密钥,又可以拦截他们的信息,无论是窃听,篡改消息畅通无阻。

中间人攻击防范措施:

客户端加强对服务端发送来的公钥里的证书的校验,检查证书是否是权威机构颁布的,证书是否还在有效期内,证书的域名与服务端域名是否一致。
客户端也内置一份签名证书,当与服务端建立连接时,首先检测服务端发送来的证书是否和客户端的内置证书一致。


6. 文件上传漏洞


服务器未校验上传的文件,致使黑客可以上传恶意脚本等方式。

防范措施:

前后端都用文件头来检测文件类型,使用白名单过滤
上传后将文件彻底重命名并移动到不可执行的目录下
Web前端网络安全总结_Z_RedBright的博客-CSDN博客_web前端网络安全

你可能感兴趣的:(前端,web安全,安全)