Web开发安全-攻击篇 2| 青训营笔记

92 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第6天

Web开发安全-攻击篇

Web开发安全是程序开发的重中之重,但是我们常常会不注意会写出一些让黑客容易攻击的代码,因此,我们要格外注意,与黑客们斗智斗勇。

Mutation-based XSS

特点:

  • 利用了浏览器渲染DOM的特性(独特优化)
  • 把不同的浏览器会有区别(是按照浏览器攻击) 根据特点来说,使用Mutation-based XSS攻击的黑客肯定是很懂得浏览器的运行规则,他们注入的代码可能会让我们某些代码的标签失去它的作用成为渲染的数据等。
  • 代码示例:
<noscript><p title=" ">
//我们再title中注入恶意代码:
<npscript><p title="</noscript><>img src="图片路径" onerror=alert("你被我攻击了")>">

当浏览器运行代码的时候,浏览器就成了这个样子:

image.png

Cross-site request forgery(CSRF)

特点:

  • 在用户不知情的前提下
  • 利用用户权限(cookie)
  • 构造指定HTTP请求,窃取或修改用户敏感信息

比如: 黑客写了一个恶意页面,它连接了银行服务器的转账接口,当用户进入了这个网页,被这个网页获取了用户的cookie,然后在用户没有访问银行页面的情况下,恶意页面便帮用户请求了银行转账的接口,因为是含有cookie的合法用户请求,银行就给它转账了,最后请求成功。

  • 代码示例
//可能使用get请求-用a标签链接银行转账接口。
<a href="银行转账接口链接">点我抽大奖</a>

//可能是使用一个图片链接银行转账接口
<img style="dispaly:none" src="转账链接">

CSRF--beyond GET

使用form表单并且将金额、转账卡号隐藏起来。

  • 代码示例:
<form action="银行转账链接" method="POST">
//转账金额
    <input name="amout" value="99999999" type="hidden">
//转账卡号
    <input name="to" value="黑客的卡号" type="hidden">
</form>