相关疑难解决方法(0)

使用JavaScript正则表达式将数字HTML实体替换为其实际字符

我正在尝试使用JavaScript和正则表达式将数字HTML实体替换为其实际的Unicode字符,例如

foo's bar
?
foo's bar
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所得到的:

"foo's bar".replace(/&#([^\s]*);/g, "$1"); // "foo39s bar"
Run Code Online (Sandbox Code Playgroud)

剩下要做的就是替换号码String.fromCharCode($1),但我似乎无法让它发挥作用.我怎样才能做到这一点?

javascript regex entities replace html-entities

6
推荐指数
1
解决办法
6373
查看次数

利用textarea利用jQuery HTML解码

跟进我的上一个问题 ......

如果攻击者有权访问以下内容,则可以利用此代码encodedText:

return $('<div/>').html(encodedText).text();
Run Code Online (Sandbox Code Playgroud)

例如$("<div/>").html('<img src="X" onerror="alert(\'hi\');" />').text()显示警报.

此答案建议使用a textarea来避免XSS漏洞:

return $('<textarea/>').html(encodedText).text();
Run Code Online (Sandbox Code Playgroud)

这能够安全地处理以前的漏洞利用.

但是,此答案表明使用时仍存在XSS漏洞textarea:

我建议使用更安全,更优化的功能

不要使用jQuery.html().text()解码html实体,因为它不安全,因为用户输入永远不能访问DOM

我的问题是:$('<textarea/>').html(encodedText);假设攻击者可以访问,是否有任何浏览器可以利用来运行XSS encodedText

javascript security xss jquery

6
推荐指数
1
解决办法
643
查看次数

javascript警报中的html实体?

我有一个来自XML的字符串(我无法编辑),我想通过javascript中的警告打印它.

我的字符串示例:

This is &agrave; string
Run Code Online (Sandbox Code Playgroud)

我需要在警报中打印:

This is à string
Run Code Online (Sandbox Code Playgroud)

有没有js html解码?

html javascript encoding entities

5
推荐指数
2
解决办法
7526
查看次数

使用JS-jQuery,我怎样才能使用unescape html并将`quotes&<>`放回字符串中?

基本上我想在我使用之后撤消我在下面找到的escapeHTML()函数.

function escapeHtml(unsafe) {
    return unsafe
         .replace(/&/g, "&amp;")
         .replace(/</g, "&lt;")
         .replace(/>/g, "&gt;")
         .replace(/"/g, "&quot;")
         .replace(/'/g, "&#039;");
 }

function unescapeHtml(safe) {
    return safe
         .replace("&amp;", /&/g)
         .replace("&lt;", /</g)
         .replace( "&gt;", />/g)
         .replace("&quot;", /"/g)
         .replace("&#039;", /'/g);
 }


var a = escapeHtml("<div> yo & yo squirrl's </div>");
var b = unescapeHtml(a);
console.log(a);
console.log(b);//should log "<div> yo & yo squirrl's </div>"
Run Code Online (Sandbox Code Playgroud)

我尝试了明显但没有交易.http://jsfiddle.net/ej6bX/

javascript jquery escaping

5
推荐指数
1
解决办法
2万
查看次数

如何在jquery中将字符串转换为xml对象

在 JavaScript 中查看了将字符串转换为 XML 文档,但在我的情况下找不到解决方案,有人可以帮助我吗?

我有一个像下面这样的字符串,我想将它转换为 XML 对象,我该怎么做?

<list>
<Response>
<cfgId>280</cfgId>
<recommendations>&lt;Rule&gt;
&lt;name&gt;simple rule&lt;/name&gt;
&lt;category&gt;none&lt;/category&gt;
&lt;severity&gt;warning&lt;/severity&gt;
&lt;ruleEvalResult&gt;true&lt;/ruleEvalResult&gt;
&lt;actionResult&gt; Current value of maxfilesperproc is  32
increase it to 1024&lt;/actionResult&gt;
&lt;/Rule&gt;</recommendations>
</Response>
</list>
Run Code Online (Sandbox Code Playgroud)

上述xml的可读版本

<list>

<Response>
<cfgId>280</cfgId>

<recommendations>
<Rule> <name>simple rule</name> <category>none</category> <severity>warning</severity>     <ruleEvalResult>true</ruleEvalResult> <actionResult>Current value of maxfilesperproc is  32
increase it to 1024</actionResult> </Rule>

</recommendations>

</Response>
</list>
Run Code Online (Sandbox Code Playgroud)

更新,这是我尝试过的。

var xml;
$.post("/csm/rules.action",
  { sessiontoken:   sessiontoken,
    cfgid:          cfgid},
      function(xmldata)
      {

            xml=$(xmldata);


      }
);
var htmlTable = $('<table></table>');

$(xml).find('Response').each(function(){
  var …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

4
推荐指数
1
解决办法
2万
查看次数

利用jquery html编码XSS

在阅读了这个问题之后,用户警告说这种编码html的方法是不安全的

    return $('<div/>').html(encodedText).text();
Run Code Online (Sandbox Code Playgroud)

"不要使用jQuery.html().text()来解码html实体,因为它不安全,因为用户输入永远不能访问DOM"

"我建议使用更安全,更优化的功能"

此方法的目的是获取编码输入,即Fish &amp; chips产生未编码的输出,即Fish & Chips

据我了解,他们声称,对于某些价值encodedText,可以执行javascript.我试图重现此设置encodedText<script>alert(1)</script>和其他一些简单的攻击,是无法找到的XSS漏洞的任何迹象.

我的问题是:使用时,任何浏览器中是否存在任何可证明的xss漏洞 $('<div/>').html(encodedText).text()

javascript security xss jquery

4
推荐指数
1
解决办法
2770
查看次数

IE8不呈现一些HTML名称实体

一些HTML名称实体不在IE8中呈现,而是我可以看到未呈现的HTML实体!例如&scedil;&inodot;.

我找到了一个使用HTML编号实体的解决方案,&#351;而不是&scedil;.

我不知道是否有人知道这个问题的原因,如果有办法看到&scedil;&inodot;或类似实体正确IE8?

这是我在jsfiddle上的代码:(如果将此代码复制到HTML文件,它将无法在IE8中呈现)

http://jsfiddle.net/7uBrd/

<HTML lang="TR">
 <HEAD>
  <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 
  <TITLE>test</TITLE>
 </HEAD>
 <BODY>
  <p>This is not working in IE8: afi&scedil;ler, e&scedil;yalar&inodot;, k&inodot; </p>
  <p> This is working: afi&;#351;ler, e&#351;yalar&#305;, k&#305; </p>    
  <p>This is Working as well: test&nbsp;test&ndash;</p>
 </BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

html character-encoding html-entities

3
推荐指数
1
解决办法
2937
查看次数

jQuery是否可以使用结束标记作为选择器?

我是jQuery的新手.我浏览了这个<div />用作选择器的jQuery代码:

$("<div />").html(someString).text();
Run Code Online (Sandbox Code Playgroud)

首先,我想知道它是否是一个合法的标签,因为它div有一个结束标签:</div>.

但我的主要问题 - jQuery是否可以使用结束标记作为选择器,这些代码的结果是什么?

怎么做这样的代码?我做了一些研究,在这里,梅加尔说:

DOM中没有"结束标记"这样的东西.标签,关闭或其他,是标记的一个组件,DOM只有元素.

但jQuery是否将结束标记视为对DOM元素的引用,就像处理开始标记一样?

非常感谢你.

html javascript jquery dom

3
推荐指数
1
解决办法
1392
查看次数

为什么这可以编码和解码HTML

我正在尝试找到一种简单快捷的方法来解码和编码文本.

我发现的最好的是下面这个.

  1. 它是否有任何区别使用$("<div/>"),为什么它在这里即使没有div?

  2. 你有更简单的方法来编码和解码HTML吗?

码:

var myHTMLstring = "<p /> + <br /> sdfsdfdsfdsfsdfsdfsdfsfsfsfdsf";

var myEncoded = $('<div/>').text(myHTMLstring).html();
//&lt;p /&gt; + &lt;br /&gt; sdfsdfdsfdsfsdfsdfsdfsfsfsfdsf


var myDecoded = $('<div/>').html(myEncoded).text();
//<p /> + <br /> sdfsdfdsfdsfsdfsdfsdfsfsfsfdsf
Run Code Online (Sandbox Code Playgroud)

javascript jquery

1
推荐指数
1
解决办法
600
查看次数