用javascript和相关问题更改标题

时间:2013-08-29 12:20:38

标签: php javascript jquery

所以用javascript更改网站标题并不是那么困难:

document.title = 'title';

但是我从用户设置变量设置标题:

document.title = userVar; // where userVar is a variable set by a user

这就是令人讨厌的地方。由于变量是由用户设置的,因此它几乎可以包含任何内容。像!@#$%^&*()_+=-甚至'"unicode characters甚至是脚本<script>alert('');</script>这样的字符。基本上,用户可以输入许多组合作为变量来打破我们的页面。我们如何实现以下内容:

document.title = clean(userVar);

加分PHP问题: 从php变量设置页面标题时,我们也会遇到类似的问题。我们如何清理变量以便将它们用作网站标题?

3 个答案:

答案 0 :(得分:3)

我认为你应该安全。默认情况下,不会执行标题标记中添加的任何标记或代码。

  

标题可能包含字符实体(用于重音字符,特殊字符等),但可能不包含其他标记(包括注释)。

来源:w3.org

从我在各种浏览器中看到/测试的内容,标题标签中的所有字符都被视为纯文本。

答案 1 :(得分:2)

从PHP开始,您可以简单地使用strip_tags,它至少会删除脚本标记:

http://de1.php.net/manual/en/function.strip-tags.php

答案 2 :(得分:0)

您可以使用RegExp清理userVar

<强>的Javascript

MDN String.replace

function clean(userVar){
   return userVar.replace(/\W+/ig, "");
}

<强> PHP

PHP preg_replace

function clean($userVar){
   return preg_replace("/\W+/", "", $userVar)
}