目录
Web前端网络安全的基石
1. 同源策略
2. HTTPS
目前常见的Web网络安全漏洞
1. XSS(Cross Site Scripting)跨站脚本攻击。
2. CSRF(Cross Site Request Forgery)跨站请求伪造
3. SQL注入攻击
4. 点击劫持攻击
5. 中间人攻击
6. 文件上传漏洞
同源策略是浏览器保障Web网络安全的基石,在理解同源策略之前,我们得先了解什么是同源。同源的站点需要满足几个条件:
①站点所用的协议一致
②站点的域名一致
③站点的端口号一致。
那么同源策略是什么策略呢?就是指只有同源的站点之间才能进行以下的行为:
①通过AJAX请求来获取和操纵资源。
②操纵DOM。
③操纵站点的cookie、LocalStorage、SessionStorage、indexDB。
同时以下的行为不受同源策略影响:
①在HTML中引入外部的资源,以及URL外链。
②表单信息的提交。
通过同源策略,许多基础的Web网络安全问题都可以避免。
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资源传输过程中或者用户使用网页的过程中修改Web页面的数据,嵌入恶意脚本,该过程不涉及服务端。
XSS攻击应对措施:
跨站请求伪造是指黑客可以冒充用户向目标站点发送请求,从而获取用户信息,篡改用户数据。跨站请求伪造需要满足以下三个条件才能发动。
①目标站点有CSRF漏洞。
②用户登录过目标站点,而且Session还在有效期内。
③用户打开一个第三方站点。
此时第三方站点可以使用用户的Session来伪造请求给目标站点。
CSRF攻击应对措施:
拼接SQL查询语句的时候未仔细筛选过滤条件,黑客可以输入畸形的数据来歪曲语义。或者通过屏幕上的报错语句推测SQL查询语句。
SQL注入攻击的应对措施:
点击劫持攻击实现方式:通过监听鼠标移动,让透明的iframe始终处于用户鼠标下,诱使用户点击看似无害的按钮,实则点击了透明iframe,然后执行一些危险操作。
点击劫持攻击的应对措施:
中间人攻击可以在HTTPS协议下仍然对通信的信息进行窃听、篡改以及身份伪造。顾名思义,中间人攻击就是黑客同时拦截了客户端和服务端的信息,充当了信息中转站的作用。
首先,在客户端与服务端建立连接时,黑客首先拦截到服务器准备传送给客户端的公钥,然后自己生成一对非对称加密的公私钥。黑客将自己的公钥发送给客户端。
之后客户端接收到黑客公钥后,客户端生成之后通讯所需要用的对称加密密钥,用黑客公钥加密客户端的对称加密密钥,之后传送给服务器。
随后黑客拦截客户端传输的数据,用黑客私钥解密,获取到客户端的对称加密密钥。再用服务器公钥加密该对称加密密钥,传送给服务器。
最后服务器解密获取到对称加密密钥,服务器和客户端就开始只用对称加密密钥进行加密通信,而黑客手上有对称加密的密钥,又可以拦截他们的信息,无论是窃听,篡改消息畅通无阻。
中间人攻击防范措施:
服务器未校验上传的文件,致使黑客可以上传恶意脚本等方式。
防范措施: