0

我有一个输入 textarea使用richtextarea,用户可以选择文本并更改为粗体、斜体

 $("#edit2").richtextarea({ toolbar: false }); 
 $("#bold").click(function() { $("#edit2").richtextarea('bold'); }); 

但是我的输出htmlentites用于防止xss输出变成任何东西

我的问题是

  1. 如果我使用richtextarea,如何输出这个

  2. 如果我使用richtextarea,如何控制mysql数据库的长度,

前任。如果我设置varchar(10),如果用户输入<b>abcd</b>这将超过 10 个字符。如果恶意用户这样做,<b>a</b> <b>a</b> <b>a</b>...

4

1 回答 1

0

我找到了输出的解决<b><i>方案htmlentities

$string=htmlentities($string, ENT_QUOTES, "UTF-8");
$string=str_replace("&lt;b&gt;",'<b>',$string);
$string=str_replace("&lt;/b&gt;",'</b>',$string);
$string=str_replace("&lt;i&gt;",'<i>',$string);
$string=str_replace("&lt;/i&gt;",'</i>',$string);

我用str_replace替换它。

这足够安全吗?

于 2013-06-16T18:32:43.467 回答