day8 | 青训营

116 阅读3分钟

Web 开发安全 - 攻击篇 

1.Cross-Site Scripting(XSS)

 ——1)XSS(跨站脚本攻击)主要利用的是Web应用程序中存在的输入点和输出点。攻击者通过在输入点注入恶意的脚本代码,然后当用户访问包含恶意脚本的页面时,这些脚本代码将在用户的浏览器中执行,从而导致攻击者能够窃取用户的敏感信息、劫持用户的会话、篡改页面内容等。手工测试XSS时,通常需要在输入点输入特殊字符来测试是否存在XSS漏洞,然后观察输出点是否对输入进行了适当的处理。需要注意的是,XSS攻击不仅可以对用户进行客户端攻击,还可以通过攻击网站管理员进行服务端攻击,因为管理员拥有更高的权限,并可以对网站进行文件管理和数据管理等操作,攻击者可以利用管理员身份进行攻击。

2)特点:通常难以从UI上感知(暗地执行脚本);窃取用户信息(cookie/token);绘制UI(例如弹窗),诱骗用户点击/填写表单 

3)stored XSS:恶意脚本被存在数据库中;访问页面-读数据-被攻击;危害最大,对全部用户可见 

4)Reflected XSS Demo:不涉及数据库;从url上攻击 

5)DOM-based XSS:不需要服务器的参与;恶意攻击的发起+执行,全在浏览器完成 

6)第四种和第五种区别:完成注入脚本的地方不同

7)Mutation-based XSS:利用了浏览器渲染DOM的特性(独特优化);不同浏览器,会有区别(按浏览器进行攻击) 

2.Cross-site request forgery(CSRF)

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

3.Injection

——1)SQL injection:请求:sql参数(恶意注入);server:参数-sql-运行sql code;获取其他数据,修改删除数据... 

2)CLI、OS command、Server-Side Request Forgery(SSRF)但严格来说只是原理类似 

4.Denial of Service(DoS) 

——通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应 

5.Distributed DoS(DDoS)

——短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求(量大) 

6.中间人攻击

——明文传输;信息篡改不可知;对方身份未验证 

Web 开发安全 - 防御篇 

1.XSS 的防御

首先,对所有用户输入的数据进行严格的过滤和验证,确保输入数据不包含恶意代码。可以使用HTML转义函数将特殊字符转换为它们的字符实体,从而防止恶意代码的执行。其次,使用内容安全策略(CSP)来限制网页中可执行的脚本和资源。CSP可以通过设置响应头或在网页中嵌入元标签来实现。此外,要使用安全的编程实践,比如避免直接拼接用户输入的数据到HTML代码中。最后,定期更新和维护网站的软件和插件,以修复已知的XSS漏洞。

2.防御 CSRF 的正确姿势

——请求头部:if伪造请求=异常来源;then限制请求来源-限制伪造请求;origin;referer 

3.防御 DoS

——code review;代码扫描+正则性能测试;拒绝用户提供正则表达式 

4.防御 Injection

——找到项目中查询sql的地方;使用prepared statement;最小权限原则;建立允许名单+过滤 

5.防御中间人

——https特点:可靠性-加密(明文);完整性-MAC验证(篡改);不可抵赖性-数字签名(身份)