如何使浏览器忽略html标签

时间:2012-12-23 12:24:56

标签: html

我创建了一个网站,用户可以通过输入用户名和密码来创建帐户,如果我创建了一个帐户并输入<h1> dan</h1>作为我的用户名,用户名将在网站上显示为标题。如果有人要使用img src或大量的换行符,这可能导致大量滥用。我如何让浏览器忽略html标签,所以如果我要键入<h1> dan</h1>它要么摆脱html或只是打印出html作为常规文本。

7 个答案:

答案 0 :(得分:2)

已经给出了一些编程语言的各种答案。您可能希望在http://www.owasp.org/上阅读有关底层技术(以及Web开发中的其他常见威胁)。

欢迎来到Web开发中的安全问题世界

答案 1 :(得分:1)

您所谈论的内容称为输入验证。关于这个问题已经做了很多工作,从头开始做这个从来都不是一个好主意。要记住的最重要的事情是输入验证必须在服务器端完成,因为客户端可以很容易地被操作。

ESAPI(由OWASP提供)是一个用于Web安全的开源库,除了其他功能之外,它还允许您进行输入验证,它具有多种语言的实现,包括PHP和Java。如果您对使用ESAPI和Java感兴趣,可以查看我使用ESAPI进行输入验证的my blog,如果您使用的是另一种语言,那么Web上就有这些示例。

答案 2 :(得分:0)

只需使用htmlspecialchars()输出用户名。

  

执行的翻译是:

     
      
  • '&安培;' (&符号)变为'&amp;'
  •   
  • '“'(双引号)在未设置ENT_NOQUOTES时变为”&quot;“。
  •   只有在设置了ENT_QUOTES时,
  • “'”(单引号)才会变为“&#039;”(或&apos;)。
  •   
  • '&LT;' (小于)成为'&lt;'
  •   
  • '&GT;' (大于)变为“&gt;
  •   

答案 3 :(得分:0)

您可以在PHP中使用strip_tags()功能。

答案 4 :(得分:0)

在服务器端代码上创建用户时,也许可以清理html标记。

此外: 我认为这是必须清理来自服务器端客户端的值。

答案 5 :(得分:0)

要么你必须摆脱所有的html标签,要么 - 更简单 - 用他们的html编码替换所有<>个字符,&lt;和{{1 }}。

答案 6 :(得分:0)

您无法在浏览器中执行此操作,您必须在后端执行此操作。

  1. 识别用户名,密码中允许的字符,无论您要求的价值是什么
  2. 提交表单时 - &gt;根据先前定义的模式(在服务器上)验证输入
  3. 在将数据发送到客户端(浏览器)之前对其进行转义/编码,以便<h1> dan</h1>成为&lt;h1glt; dan&lt;/h1&gt;
  4. 让自己对一些安全问题充满信心,以及如何避免使用sql注入或crosssite脚本