🔍 登录 注册

UEditor如何防止xss注入

大 大苹果 2017-05-26 后端 👁 4010 ⏱ 5min
UEditor如何防止xss注入

现在的富文本编辑器,都有xss注入漏洞,想请教一下,如何防止xss注入?markdown编辑器先不考虑

服务器端清除xss攻击

string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = "UTF-8" [, bool $double_encode = true ]]] )

例子:

<?php
$str  =  "A 'quote' is <b>bold</b>" ;

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo  htmlentities ( $str );

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo  htmlentities ( $str ,  ENT_QUOTES );
?>
<?php
$str  =  "\x8F!!!" ;

// Outputs an empty string
echo  htmlentities ( $str ,  ENT_QUOTES ,  "UTF-8" );

// Outputs "!!!"
echo  htmlentities ( $str ,  ENT_QUOTES  |  ENT_IGNORE ,  "UTF-8" );
?>
string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = "UTF-8" [, bool $double_encode = true ]]] )
<?php
$new  =  htmlspecialchars ( "<a href='test'>Test</a>" ,  ENT_QUOTES );
echo  $new ;  // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

还原显示可以使用htmlspecialchars_decode、html_entity_decode

string htmlspecialchars_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ] )


<?php
$str  =  "<p>this -&gt; &quot;</p>\n" ;

echo  htmlspecialchars_decode ( $str );

// 注意,这里的引号不会被转换
echo  htmlspecialchars_decode ( $str ,  ENT_NOQUOTES );
?>

以上过程会输出

<p>this -> "</p>
<p>this -> &quot;</p>
string html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = "UTF-8" ]] )
<?php
$orig  =  "I'll \"walk\" the <b>dog</b> now" ;

$a  =  htmlentities ( $orig );

$b  =  html_entity_decode ( $a );

echo  $a ;  // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo  $b ;  // I'll "walk" the <b>dog</b> now
?>


读完了?给作者一点支持

本文采用 CC BY 4.0 协议转载 · © 大苹果

评论(0)

登录 后参与评论。

  • 还没有评论,来抢沙发。

🔗 相关文章