我创建了一个网站,用户可以通过输入用户名和密码来创建帐户,如果我创建一个帐户并输入<h1> dan</h1>
我的用户名,用户名将作为标题显示在网站上。如果有人要使用 img src 或大量换行符,这可能会导致大量滥用。我如何让浏览器忽略 html 标签,所以如果我要输入<h1> dan</h1>
它,它将摆脱 html 或只是将 html 作为常规文本打印出来。
问问题
1287 次
7 回答
2
已经给出了一些编程语言的各种答案。您可能想在http://www.owasp.org/上阅读底层技术(以及 Web 开发中的其他常见威胁)。
欢迎来到 Web 开发中的安全问题世界
于 2012-12-23T12:35:41.407 回答
0
只需使用 . 输出用户名htmlspecialchars()
。
执行的翻译是:
- '&'(和号)变为'
&
'"
当 ENT_NOQUOTES 未设置时,'"'(双引号)变为 ' '。- 仅当设置了 ENT_QUOTES 时,“'”(单引号)才变为 '
'
'(或)。'
- '<'(小于)变为'
<
'- '>' (大于)变为 '
>
'
于 2012-12-23T12:28:21.980 回答
0
您可以在 PHP中使用strip_tags()函数。
于 2012-12-23T12:29:54.473 回答
0
当您在服务器端代码上创建用户时,也许您可以清理 html 标签。
另外:我认为必须在服务器端清除来自客户端的值。
于 2012-12-23T12:30:04.563 回答
0
要么你必须去掉所有的 html 标签,或者 - 更简单 - 用它们的 html 编码替换所有<
和>
字符,<
并且>
.
于 2012-12-23T12:30:34.050 回答
0
您不能在浏览器中执行此操作,您必须在后端执行此操作。
- 识别用户名、密码中允许的字符,无论您要求什么值
- 提交表单时 -> 根据您先前定义的模式(在服务器上)验证输入
- 在将数据发送到客户端(浏览器)之前转义/编码您的数据,即这样
<h1> dan</h1>
会变成<h1glt; dan</h1>
- 让自己对一些安全问题以及如何避免它们(如 sql 注入或跨站点脚本)充满信心
于 2012-12-23T12:32:43.757 回答