Web开发的安全之旅 | 青训营笔记

55 阅读3分钟

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

XSS

XSS全程是Cross-site scripting 跨站脚本攻击,也就是常说的js注入。

XSS攻击经常发生在两种情况,一种是数据从一个不可靠连接进入到一个web应用程序时候,另一种是没有过滤掉恶意代码的动态内容被发送给web用户。 XSS可以窃取Cookie信息,可以模拟用户登录及其他操作,也可以监听用户行为,获得个人信息。甚至可以修改DOM伪造假的登录窗口,欺骗用户输入用户名和密码等个人信息。 存储是上传有漏洞的服务器中,最终存入服务器,比如提交评论一类的。 image.png 而反射型、DOM的xss攻击则是不存入服务器。

image.png

CSRF

Cross Site Request Forgery 跨站点请求伪造 攻击者会盗用用户身份,发送恶意请求。 页面中Cookie确定用户的登陆,但无法确定一定是当前用户触发的,如果本身是get请求,那么将命令、url地址内嵌到img或者HTML中,就可以多次完成一个转账。 image.png

一个比较简单的例子就是如果用户使用get请求进行了转账或者其他操作,最后的url请求地址为ip:端口号/get?userid=123&give=1000,那么当黑客使用内嵌的DOM元素(例如img),使得img的url指向这个url请求地址,那么就会导致服务器重新执行一遍对此url的访问。

在防止CSRF攻击中,我们可以遵循以下几个原则。

  • 1、尽量使用POST请求
  • 2、加入验证码、
  • 3、加入Referer

SQL注入

由于我之前学过数据库,所以对SQL注入稍微有一定了解,感觉记得还挺清楚,所以就不在重新写一遍笔记了,总之感觉和CSRF也差不多,大概就是在原本应该输入用户、密码或者其他数据的地方改为类似过滤条件的样式。

例如后台提供的是 select * from user where userid = 用户输入值 ,正常用户输入数字或文字,那么最终会返回一个查找结果,但如果输入的是 1 or 1 = 1 就会发现后面的数据永远是正确的,那么前面userid= 1 的条件自然就被忽略了。

SSRF

ssrf是一种由攻击者构造请求,由服务端发起请求的安全漏洞一般情况下,SSRF攻击的目标是外网无法访问的内网系统

攻击方法

  • 1.对外网,服务器所在内网,本地进行端口扫描,获取一些服务的banner信息
  • 2.攻击运行在内网或本地的应用程序
  • 3.对内网Web应用进行指纹识别,识别企业内部的资产信息
  • 4.利用file协议读取本地文件等一些方法

防御方法

  • 1.限制请求的端口只能为Web端口,只允许访问HTTP和HTTPS请求
  • 2.限制不能访问的内网IP,以防止对内网进行攻击
  • 3.屏蔽返回的详细信息
  • 4.使用DNS缓存或者Host白名单的方式。

Dos

DOS攻击可以理解为攻击方长期占线,导致其他用户的请求受到限制。

浅浅总结一下

之前两节课觉得并没有很多实操,于是也就听完就过去了,但感觉这节课还比较重要,而且了解不多,于是决定记一下,但是因为最近有点感冒,所以课程上慢了一些。这部分粗浅看了一下没有记,等想起来的时候回放已经看不了了,于是转向b站开始补了起来,所以可能和老师上的课有些区别。。