我有一个Web应用程序,我想防止XSS。特别是,有没有:如何使用内容安全策略保护单域Web应用程序免受XSS攻击?
- 表单提交到其他域
- 从其他领域
- 链接指向其他领域
- I帧JS文件,嵌入,对象
有然而(不幸的是)很多内联JS,我将转移到JS文件,所以我可以从CSP中删除unsafe-inline
。
我看到它的方式,内容安全策略应该是这样的:
default-src 'self' 'unsafe-inline';
child-src 'none';
frame-src 'none';
object-src 'none';
base-uri 'self';
form-action 'self';
frame-ancestors 'none';
plugin-types 'none';
report-uri 'self';
sandbox '';
我错过了什么?
是否有一些更简单的方法来缓解
unsafe-inline
的风险,而不是将所有内联JS移动到外部文件?
除了这些,别忘了逃避每种可能的输入类型。对于全面的讨论,让我指出你[OWASP备忘单](https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet) – MaVVamaldo
@MaVVamaldo:当然 - 但这是一整套其他保护层。我正在寻找的是在编程错误的情况下的一些额外的缓解。任何想法,如果上述配置是有道理的? – johndodo
如果您的网页包含用户生成的内容(例如用户名),您应该将所有内联JS移动到外部。 – Tom