全网最全的网站攻击手段科普,我们应该如何防御?——CSRF篇
全网最全的网站攻击手段科普,我们应该如何防御?本文由新睿云官方推出一些有效且简单的防御方式!
现在不论是个人还是企业都有自己的网站,在互联网时代网站成为了大家的标配。这次我们就网站这个话题谈一下,往往网站被攻击黑客一般采取哪些手段?我们又当如何进行防护?
全网最全的网站攻击手段科普,我们应该如何防御?——CSRF篇
全网最全的网站攻击手段科普,我们应该如何防御?——SQL注入篇
全网最全的网站攻击手段科普,我们应该如何防御?——DDoS与DNS劫持完结篇
一、XSS
首先说下最常见的 XSS 漏洞,XSS (Cross Site Script),跨站脚本攻击,因为缩写和 CSS (Cascading Style Sheets) 重叠,所以只能叫 XSS。
XSS 的原理是恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中 Web 里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。
简单来说
1. 正常用户 A 提交正常内容,显示在另一个用户 B 的网页上,没有问题。
2. 恶意用户 H 提交恶意内容,显示在另一个用户 B 的网页上,对 B 的网页随意篡改。
造成 XSS 有几个要点:
1. 恶意用户可以提交内容
2. 提交的内容可以显示在另一个用户的页面上
3. 这些内容未经过滤,直接运行在另一个用户的页面上
举例说明
假设我们有一个评论系统。
用户 A 提交评论「小谷你好」到服务器,然后用户 B 来访问网站,看到了 A 的评论「小谷你好」,这里没有 XSS。
恶意用户 H 提交评论「<script>console.log(document.cookie)</script>」,然后用户 B 来访问网站,这段脚本在 B 的浏览器直接执行,恶意用户 H 的脚本就可以任意操作 B 的 cookie,而 B 对此毫无察觉。有了 cookie,恶意用户 H 就可以伪造 B 的登录信息,随意访问 B 的隐私了。而 B 始终被蒙在鼓里。
二、如何防止XSS的漏洞?
XSS 的成因以及如何避免
继续上面例子,之所以恶意脚本能直接执行,有两个可能
1. 后台模板问题
<p>
评论内容:<?php echo $content; ?>
</p>
$content 的内容,没有经过任何过滤,原样输出。
要解决这个原因,只需要后台输出的时候,将可疑的符号 < 符号变成 < (HTML实体)就行。
2. 前端代码问题
$p.html(content)
或者
$p = $(‘<p>’+ content +'</p>’)
content 内容又被原样输出了。
解决办法就是不要自己拼 HTML,尽量使用 text 方法。如果一定要使用 HTML,就把可疑符号变成 HTML 实体。