网络安全(xss/csrf)简单攻击原理及防御方案(实战篇)
项目代码如下:
应用:普通网站
黑客攻击:模拟黑客攻击的网站
节点+ express+react+mysql
项目介绍
1.代码索引
![]()
2。创建数据库
![]()
node app/mysql.js 首先运行该文件创建表和数据
![]()
如图
![]()
1。跨站脚本攻击(XSS) 跨站脚本攻击
原理:恶意攻击者在网页中插入恶意的可执行Web脚本代码。当用户浏览页面时,嵌入在网页中的脚本代码被执行,从而攻击者可以达到窃取用户信息或以其他方式侵犯用户安全和隐私的目的。
1。此时运行项目 npm run start 并打开首页
![]()
![]()
![]()
此时正在将 React 模板写入首页, React DOM 转换内容(字符串)的含义渲染时,所以不会处理字符串标签 HTML -tags,因此输入脚本无法执行
因此添加了使用 ejs 模板加载的页面 xss.html(要么从 URL 输入脚本如http://localhost:4000/xss?text=或者直接获取数据库中存储的代码即可)
![]()
![]()
2.开始使用document.cookie攻击,按照刚才的方法切换到攻击
打开http://localhost:4000/xss你会看到一个界面询问http://localhost:5000/xss.html![]()
中在控制台,可以看到黑客站点的5000端口已经被Cookie打印出来。通过使用cookie,我们可以设置控制台cookie直接登录网站![]()
2.CSRF跨站伪造
原理:利用用户的登录状态,诱骗用户在黑客网站上打开黑客网站发起跨站点请求。
1。登录后,打开 localhost:5000/csrf.html 页面。在控制台中我们看到一个 setDataList 请求。这是提交内容的界面。可以看到4000个主页内容发生了变化![]()
正常网站内容变化![]()
![]()
解决方案(创建token,导入nonce和时间戳到用户界面)
![]()
![]()
3.点击捕获
原理:用户登录A网站系统后,攻击者诱骗用户打开第三方页面,第三方网站通过iframe呈现A网站页面内容。当用户点击第三方网站上的按钮(装饰按钮)时,实际上是点击了A网站上的按钮。
- 打开 http://localhost:5000/clickHijack.html 并单击按钮。其实你点击http://localhost:4000/home追踪按钮是因为4000页面嵌入了iframe
![]()
![]()
![]()
解决办法,纠正iframe嵌入限制
![]()
作者:兰兰江
链接:https:: //juejin.cn /post/6953059119561441287
来源:掘金
版权归作者所有。商业转载请联系作者获得许可。非商业转载请注明出处。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
