使用JQuery,如何防止用户将脚本或html输入到输入字段?

时间:2011-06-12 16:34:18

标签: jquery input

基本上,我需要能够在处理之前从输入字段中删除脚本和html。我正在使用JQuery,并希望找到一种标准的方法来做这种事情。有什么想法吗?

4 个答案:

答案 0 :(得分:3)

你的HTML:

<input class="striphtml" name="name" />

你的js:

$(document).ready(function() {
  // strip all html when text in input changes
  $(".striphtml").change(function(){
      $(this).val( $(this).text() );
  });
});

<强>结果:

<p>This is a test.</p>

将替换为:

&lt;p&gt;This is a test.&lt;/p&gt;

注意:正如SLaks所说,你必须在服务器端验证你的INPUTS !!!

答案 1 :(得分:1)

您必须在服务器上执行此操作。如果您在客户端上执行此操作,则可以让人们亲自手工制作HTTP消息以发送到您的服务器,因为您知道您的服务器假定您的客户端代码逃脱了字符串。因此,由于您的服务器无法假定内容是安全的,因此 认为它不是安全的。 (否则你最终会对事物进行双重编码,这就变得很痛苦。)因此,客户端代码执行转义既不可能也不合适。

答案 2 :(得分:0)

这是一个很棒的教程,可以满足您的需求。正如SLaks所说,做这个服务器端。消除您的输入

Tutorial

您可以使用特定字符进行正则表达式处理,但这只会有所帮助。

答案 3 :(得分:0)

你根本不应该这样做。

相反,您应该在服务器上转义您的内容 这样,您就可以接受恶意输入(或<字符),而不会受到它的伤害。