我是一名自由职业者,正在开发一个公司的网络应用程序,我意识到在任何文本框中你都可以输入html标签或javascript行,这显然是非常有问题的,因为我不知道#39;希望用户能够做一些混乱其外观或功能的东西。有没有办法确保html / javascript无法写入文本框?
答案 0 :(得分:2)
最好的方法是假设所有被POST的数据或通过URI发送到服务器的数据是恶意的,直到你明确检查它不是(Perl实际上有一个污点模式来强制执行此操作),并验证数据收到的信息对您期望的数据类型有效。您不应该依赖客户端的验证(仅限),因为恶意用户可能会在不实际使用您的前端的情况下制作特殊请求。
答案 1 :(得分:1)
尽管事实上我没有太多关于这个问题的信息我会试一试,所以对我好! (请提供更多信息)
Html或Javascript他们有一些常见的表达式,您可以通过编写自定义的javascript验证器从文本字段中排除这些表达式。
答案 2 :(得分:1)
您应该验证任何用户输入(文本框等)。这意味着,例如,如果要求输入数字,则检查用户输入是否为数字,并拒绝其他任何内容。
你不能(而且你不应该)“禁止写HTML / JavaScript”,你必须“检查输入是否符合您的预期”。
您应该在想要使用它时立即验证输入。如果您有某种input
,keypress
,keyup
或类似的事件处理程序,则应在使用之前验证数据。
此外,您不应将用户数据注入HTML。例如,不要使用element.innerHTML = data;
,而是使用element.textContent = data;
,因此数据不会被解析为HTML,而只是作为文本注入。 (如果您使用的是jQuery,请使用$(...).text(data)
代替$(...).html(data)
。