作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试解决一个安全漏洞以防止 xss。
我应该在存储到数据库之前对所有用户输入(例如 <> 标签)进行编码,还是应该将原始输入存储到数据库中,并仅在从数据库检索数据并在 HTML 上显示数据时对 HTML 进行编码?
最佳答案
反射式XSS是指在不存储脚本的情况下进行的攻击,它向客户端显示相同的输入。例如,在搜索中输入姓名,系统的答案是“未找到姓名”。在这种情况下,您可以放置脚本而不是名称。
如果您想存储输入以便稍后读取。它被称为存储型 XSS。如何预防?这是一个困难的部分。您可以使用白名单验证。如果您的输入是 HTML,您可以使用 OWASP_Java_HTML_Sanitizer_Project https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Project
什么时候需要使用enconding?您需要根据使用数据的上下文对数据进行编码。例如,如果您需要在 HTML 页面上呈现数据,则需要在显示数据之前对 HTML 进行编码。但如果你需要在 JS 脚本上使用它,你需要使用 URL enconde。 enconde 取决于您使用数据的上下文。
关于java - 对所有用户输入进行编码以防止 rXSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43765171/
我正在尝试解决一个安全漏洞以防止 xss。 我应该在存储到数据库之前对所有用户输入(例如 <> 标签)进行编码,还是应该将原始输入存储到数据库中,并仅在从数据库检索数据并在 HTML 上显示数据时对
我是一名优秀的程序员,十分优秀!