了解IT技术
老九你最好的选择

Web前端网络安全总结

Web前端网络安全的基石

  1. 同源策略
    同源策略是浏览器保障Web网络安全的基石,在理解同源策略之前,我们得先了解什么是同源。同源的站点需要满足几个条件:

①站点所用的协议一致

②站点的域名一致

③站点的端口号一致。

那么同源策略是什么策略呢?就是指只有同源的站点之间才能进行以下的行为:

①通过AJAX请求来获取和操纵资源。

②操纵DOM。

③操纵站点的cookie、LocalStorage、SessionStorage、indexDB。

同时以下的行为不受同源策略影响:

①在HTML中引入外部的资源,以及URL外链。

②表单信息的提交。

通过同源策略,许多基础的Web网络安全问题都可以避免。

​​​​​​​2. HTTPS
HTTPS其实就是HTTP加上SSL或者TLS。这里得先说一下SSL与TLS的关系。TLS1.0其实就是SSL 3.1. 所以TLS就是SSL的升级版。HTTP加SSL/TLS之后使得Web网络安全得到更有力的保障。之所以使用HTTPS替代HTTP,就是因为HTTP使用明文传输,可能会有以下风险

①窃听风险:第三方可以获取保密信息。

②篡改风险:第三方可以篡改保密信息。

③冒充风险:第三方可以冒充身份和目标进行通信。

HTTP采用SSL/TLS协议就希望达到以下目的:

①所有信息都是加密传输,第三方无法窃听。(保密性)

②信息一旦被篡改,通信的双方都能察觉并且采取措施。(完整性)

③附带身份信息,防止冒充。(不可否认性)

具体到TLS的实现层面:TLS使用了非对称加密和对称加密算法。非对称加密算法用来在建立连接的时候,加密对称加密算法所需的密钥。然后正式建立起连接后,就使用对称加密算法的密钥加密通讯信息。为什么这样设计呢,主要是非对称加密算法比较安全,加解密所需要的计算开销比较大,公私钥的机制使得密钥可以不用预先发放。而对称加密算法安全性较低,加解密计算量少,密钥需要预先发放。因此结合两种算法可以进行优势互补。同时为了确保非对称加密的公钥是可信的,需要服务端在传输非对称加密的公钥的时候附带上证书,只要证书是可信的,那么非对称加密的公钥就是可信的。

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

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

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

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

XSS攻击应对措施:

  • 将cookie等敏感信息设置为HttpOnly,不允许通过document获取。
  • 启用CSP,内容安全策略,只有在白名单内的内容才能正常运行(JS, Image等)。
  • 在前端以及后端对所有的输入信息做严格的校正,过滤掉不合法的输入,同时转义常用的可能导致恶意脚本嵌入的字符,如尖括号,双引号等字符。
  1. CSRF(Cross Site Request Forgery)跨站请求伪造
    跨站请求伪造是指黑客可以冒充用户向目标站点发送请求,从而获取用户信息,篡改用户数据。跨站请求伪造需要满足以下三个条件才能发动。

①目标站点有CSRF漏洞。

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

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

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

CSRF攻击应对措施:

  • 将Session的有效期设置得短一些。
  • 服务端通过请求中的Origin和Referer头字段判断请求的来源,如果请求的来源和目标站点不同源,则大概率是CSRF,服务端拒绝执行该请求。
  • 在执行一些重要的操作的时候,在请求中添加Token验证信息。在页面交互元素中预设好随机Token,然后在提交请求时候带上,服务器端验证Token的正确性,不正确则拒绝执行请求。
  1. SQL注入攻击
    拼接SQL查询语句的时候未仔细筛选过滤条件,黑客可以输入畸形的数据来歪曲语义。或者通过屏幕上的报错语句推测SQL查询语句。

SQL注入攻击的应对措施:

  • 禁止目标网站通过动态拼接字符串的方式访问数据库
  • 减少不必要的数据库报错信息的抛出。
  • 过滤掉不必要的SQL保留字比如Where等。
  1. 点击劫持攻击
    点击劫持攻击实现方式:通过监听鼠标移动,让透明的iframe始终处于用户鼠标下,诱使用户点击看似无害的按钮,实则点击了透明iframe,然后执行一些危险操作。

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

  • 服务端添加X-Frame-Option这个响应头,这样浏览器就会阻止嵌入的网页的加载。
  • JS 判断顶层视口的域名是不是和本页面的域名一致,不一致则不允许操作
  1. 中间人攻击
    中间人攻击可以在HTTPS协议下仍然对通信的信息进行窃听、篡改以及身份伪造。顾名思义,中间人攻击就是黑客同时拦截了客户端和服务端的信息,充当了信息中转站的作用。

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

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

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

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

中间人攻击防范措施:

  • 客户端加强对服务端发送来的公钥里的证书的校验,检查证书是否是权威机构颁布的,证书是否还在有效期内,证书的域名与服务端域名是否一致。
  • 客户端也内置一份签名证书,当与服务端建立连接时,首先检测服务端发送来的证书是否和客户端的内置证书一致。
  1. 文件上传漏洞
    服务器未校验上传的文件,致使黑客可以上传恶意脚本等方式。

防范措施:

  • 前后端都用文件头来检测文件类型,使用白名单过滤
  • 上传后将文件彻底重命名并移动到不可执行的目录下
赞(6) 打赏
未经允许不得转载:老九IT技术网 » Web前端网络安全总结
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

老九为IT技术人提供最全面的IT资讯和交流互动

友情链接广告合作