其他
面试经常被问的web安全问题
背景
正文开始
」SQL注入 XSS CSRF 点击劫持 中间人攻击
articlrs/index.php?id=1
sql = "SELECT * FROM articles WHERE id =", $id
articlrs/index.php?id=-1 OR 1 = 1
<form action="" method="POST">
<input type="text" name="text">
<input type="submit" value="submit">input>
form>
<h2>你输入的内容: {{{text}}}h2>
如何防御XSS 」
字符转译 CSP(Content Security Policy)
& 替换为:&
< 替换为:<
> 替换为:>
” 替换为:"
‘ 替换为:'
/ 替换为:/
<script>alert('1')script>
<script>alert(1)</script>
<a href="{{xss}}">点我a>
设置 HTTP Header 中的 Content-Security-Policy
设置 meta
标签的方式
如何防御CSRF
」如何防御点击劫持
」DENY,表示页面不允许通过 iframe 的方式展示。 SAMEORIGIN,表示页面可以在相同域名下通过 iframe 的方式展示。 ALLOW-FROM,表示页面可以在指定来源的 iframe 中展示。
if (top.location.hostname !== self.location.hostname) {
alert("您正在访问不安全的页面,即将跳转到安全页面!")
top.location.href = self.location.href;
}
确保当前你所访问的网站使用了HTTPS 如果你是一个网站管理员,你应当执行HSTS协议 不要在公共Wi-Fi上发送敏感数据 如果你的网站使用了SSL,确保你禁用了不安全的SSL/TLS协议。 不要点击恶意链接或电子邮件。
target="_blank"
跳转的网页拥有了浏览器 window.opener
对象赋予的对原网页的跳转权限,这可能会被恶意网站利用,例如一个恶意网站在某 UGC 网站 Po 了其恶意网址,该 UGC 网站用户在新窗口打开页面时,恶意网站利用该漏洞将原 UGC 网站跳转到伪造的钓鱼页面,用户返回到原窗口时可能会忽视浏览器 URL 已发生了变化,伪造页面即可进一步进行钓鱼或其他恶意行为:<script language="javascript">
window.opener.location = 'https://example.com'
script>
如何修复
<a href="外跳的地址" rel="noopener noreferrer">外跳的地址a>
"/redirect?target=http%3A%2F%2Fxxx.yyy.com">
http://xxx.yyy.com
</a>
总结
❤️ 看完两件事
如果你觉得这篇内容对你有所帮助,我想邀请你帮我两个小忙:点个「 在看
」,让更多的人也能看到这篇内容(喜欢不点在看,都是耍流氓 -_-)关注公众号「IT平头哥联盟」,一起进步,一起成长!
推荐阅读: