javascript中的嵌套引号

Sco*_*ard 1 javascript quotes

这里有一点菜鸟问题......

我在表行列表上有一个javascript函数

<tr onclick="ClosePopup('{ScenarioID}', '{Name}');" />
Run Code Online (Sandbox Code Playgroud)

但是,{Name}值有时可以包含字符"'"(单引号).目前出现错误预期:')'因为它有效地结束了早期的javascript函数并破坏了语法.

禁止{Name}值中的单引号影响javascript的最佳方法是什么?

干杯!

小智 6

你犯下了不安全的网页模板编程的第一个致命罪 - 没有逃避被渲染到模板中的值的内容.我几乎可以向您保证,如果您采用这种方法,您的Web应用程序将容易受到XSS(跨站点脚本)的攻击,并且任何第三方都可以在您的页面中运行自定义javascript,窃取用户数据并按照自己的意愿进行破坏.

看看这个.http://en.wikipedia.org/wiki/Cross-site_scripting

解决方案是逃避内容.并且在javascript中正确地执行此操作,这也是在html内部,不仅仅是将转义序列放在反斜杠前面.

任何体面的模板引擎都应该为你提供一种在内容写入模板时逃避内容的方法.您的数据库值可以保留原样,重要的部分是在输出时转义它.如果您的模板引擎或动态Web应用程序框架不允许这样做,请更改为.:)