草庐IT

Escaping

全部标签

javascript - Javascript输出JSON内容时,HTML转码应该在服务端转义还是在客户端转义?

我有一个应用程序,它包含一个用PHP编写的服务器端RESTAPI,以及一些使用此API并使用它生成的JSON来呈现页面的客户端Javascript。所以,这是一个非常典型的设置。RESTAPI提供的数据是“不受信任的”,因为它正在从数据库中获取用户提供的内容。因此,例如,它可能会获取如下内容:{"message":"alert("Gotcha!")"}显然,如果我的客户端代码要将其直接呈现到页面的DOM中,那么我已经创建了一个XSS漏洞。因此,此内容需要先进行HTML转义。问题是,输出不可信内容时,应该在服务端转义,还是在客户端转义?即,我的API应该返回原始内容,然后让客户端Java

javascript - 道场工具包 : how to escape an HTML string?

我的HTML5应用程序的用户可以在表单中输入他的名字,这个名字将显示在其他地方。更具体地说,它将成为一些HTML元素的innerHTML。问题是,如果在表单中输入有效的HTML标记,这可能会被利用,即某种HTML注入(inject),如果您愿意的话。用户名只在客户端存储和显示,最终受影响的只有用户自己,但还是马虎。在将字符串放入Dojo中的元素innerHTML之前,是否有办法对字符串进行转义?我猜Dojo曾经有过这样的功能(dojo.string.escape()),但它在1.7版本中不存在。谢谢。 最佳答案 dojox.html

php - 如何从 PHP 中为 javascript 转义字符串?

让我们想象一个表单编辑器,它可以编辑可用的值。如果数据包含"字符(双引号)它“破坏”了HTML代码。我的意思是,让我们检查代码:所以我生成HTML:onclick="vara=prompt('Newvalue:','');if(a!=null)....结果是onclick="vara=prompt('Newvalue:','aaaa\"aaa');if(a!=null){v....这使得JS无法工作,从而破坏了代码。用单引号'它工作正常。mysqlrealescape做同样的。如何转义任何字符串以免破坏javascript?json_encode看起来不错,但我一定是做错了什么,它仍然

Javascript - 替换字符串文字中的转义字符

我正在尝试替换Javascript字符串文字中的反斜杠(转义)字符。我需要用双反斜杠替换它,以便我可以进行重定向:varnewpath='file:///C:\funstuff\buildtools\viewer.html'.replace(/\\/g,"\\");window.location=newpath;不过,好像没有结果。在Javascript处理反斜杠之前,我没有正确转义反斜杠的选项。如何将(\)替换为(\\)以使Javascript满意?谢谢,德里克 最佳答案 如果它是文字,您需要在Javascript看到它们之前转义

javascript - 在将它们用于 Javascript 时转义 Rails 变量中的引号?

我在尝试在javascript代码中使用rails变量时遇到问题。例如,我可能会定义一个link_to_remote,带有参数:complete=>"alert('my_var');"如果my_var="I'mtesting.",则javascript代码将由于单引号过早关闭代码而中断。如果我尝试使用escape_javascript(my_var)将引号变成\',它似乎无法解决问题。我注意到,当您尝试alert('I\'mtesting');时会出现问题,但是如果您执行alert('I\\'testing'),它起作用了。由于escape_javascript仅将'转换为\',而不是

JavaScript 正则表达式,在哪里使用转义字符?

正则表达式允许以下字符:字母数字、空格、'-'、'_'、'&'、'()'和'/'这是表达式[\s\/\)\(\w&-]我已经在各种在线测试仪上测试过它并且知道它可以工作,但我无法让它在代码中正常工作。我尝试任何操作都会遇到系统错误。有什么建议吗?varprogramProductRegex=newRegExp([\s\/\)\(\w&-]); 最佳答案 您可以使用正则表达式语法:varprogramProductRegex=/[\s\/\)\(\w&-]/;您使用正斜杠来分隔正则表达式模式。如果您使用RegExp对象构造函数,则需要

javascript - 如何正确转义正则表达式中的字符

我想在字符串中进行字符串搜索。只需说MySTR.search(Needle)。当此needle字符串包含特殊的正则表达式字符(如*、+等)时,就会出现问题。它因错误invalidquantifier而失败。我浏览了网页,发现字符串可以用\Qsomestring\E进行转义。但是,这并不总能产生所需的行为。例如:varsNeedle='*Stars!*';varsMySTR='Thecontentsofthisstringhavenoimportance';sMySTR.search('\Q'+sNeedle+'\E');结果为-1。好的。varsNeedle='**Stars!**';

javascript - 在 JavaScript 中对 utf-8 字符串使用 encodeURI() 与 escape()

我在JavaScript中处理utf-8字符串,需要对它们进行转义。escape()/unescape()和encodeURI()/decodeURI()都可以在我的浏览器中使用。转义()>varhello="안녕하세요">varhello_escaped=escape(hello)>hello_escaped"%uC548%uB155%uD558%uC138%uC694">varhello_unescaped=unescape(hello_escaped)>hello_unescaped"안녕하세요"encodeURI()>varhello="안녕하세요">varhello_enco

php - 正则表达式 - 负前瞻性转义

我有以下JSON编码的字符串:$json='"|\t|\n|\\\u0027|\\\u0022|"';除了\\\u0022或\\\u0027之外,转义所有(已经)转义的字符/代码点的最有效方法是什么?我虽然关于将preg_replace()与负先行正则表达式一起使用,但它没有像我预期的那样工作,输出应该是:$json='"|\\\t|\\\n|\\\u0027|\\\u0022|"';我在JSON-PHP-PCRE转义的海洋中迷失了方向,有人可以帮助我吗? 最佳答案 像这样的东西可能会在负前瞻的帮助下工作:输出string(25)"

php - 如何反转 escapeshellarg?

好吧,标题说明了一切。在php中,如何反转escapeshellarg()?更准确地说,将反转它的内置函数(如果有的话)是什么。 最佳答案 最彻底的途径是找出exactlywhatescapeshellarg()does并做相反的事情。在linux环境中,它看起来只是在处理单引号。在Windows环境中,它的功能要多一些。您的反向功能也应考虑到这一点。关于内置函数:简短的回答是“没有”。长答案是:没有一个,因为转义的shell参数从来没有打算被PHP解析(为什么首先要转义它们?)所以没有人写过一个并将其作为补丁提交给PHP。如果您将