Javascript 转义用户生成的内容-这意味着什么?

Javascript 转义用户生成的内容-这意味着什么?,javascript,html,xss,Javascript,Html,Xss,我开始使用谷歌的按钮。我实际上是在使用共享链接,在文档中的某个地方,它说: 注意:将{URL}替换为要共享的页面的URL。你 必须正确转义可能发生在中的任何用户生成的内容 {URL} 这意味着什么?我如何才能避免这种情况?你必须对你的URL进行URL编码,你可以用任何编程语言来实现这一点。 有关更多信息,请参阅: Javascript var url = encodeURIComponent("http://example.com"); PHP $url = urlencode("http:/

我开始使用谷歌的按钮。我实际上是在使用共享链接,在文档中的某个地方,它说:

注意:将{URL}替换为要共享的页面的URL。你 必须正确转义可能发生在中的任何用户生成的内容 {URL}


这意味着什么?我如何才能避免这种情况?

你必须对你的URL进行URL编码,你可以用任何编程语言来实现这一点。 有关更多信息,请参阅:

Javascript

var url = encodeURIComponent("http://example.com");
PHP

$url = urlencode("http://example.com");
C#


转义意味着将可能有害的字符转换为对计算机翻译无害的字符

例如:

url = "<script>doSomeNastyStuff();</script>";
现在,您已经将有害脚本转换为普通字符,在打印或存储时,您将不必担心有害脚本被注入代码

转义字符的其他示例如下

var sayHello = "Hello "world", as you like to call yourself";
现在,这个javascript代码中的unscaped将产生一个错误,因为字符串已经终止,单词“world”现在是一个变量,然后一个新字符串开始

这是允许引号的同一个转义字符串

var sayHello = "Hello \"world\", as you like to call yourself";
这是完全正确的


Dillen建议的方法正是解决问题的正确方法,但我认为解释转义方法也很合适。

Dillen评论的是编码,但我需要转义字符,对吗?这是一样的吗?你应该对迪伦斯的建议很好。编码在这种特殊情况下也会做同样的事情!:)
var sayHello = "Hello "world", as you like to call yourself";
var sayHello = "Hello \"world\", as you like to call yourself";