2012-07-18 54 views
0

我很難理解如何去做這件事。 我有一個標籤中的內容,我想保存在數據庫中。 即時通訊使用FILTER_SANITIZE_STRING來逃避XSS攻擊,但它擺脫了我的textarea內容中的換行符。在php過濾器消毒之前或之後在文本區域保留換行符

我想知道我怎麼去消毒我的內容(防止XSS風險),但尚未保持休息,所以我可以從數據庫與休息完好

謝謝:)

添加到我的數據庫,並把它
+0

它是否真的擺脫了斷線?如果您直接將它們輸出到頁面,它們將不會顯示;你需要使用['nl2br'](http://us2.php.net/manual/en/function.nl2br.php)。 – 2012-07-18 13:33:27

+1

'FILTER_SANITIZE_STRING'不應該去掉換行符(或者更準確地說CRLF序列,因爲數據來自textarea),除非你還指定了'FILTER_FLAG_STRIP_LOW' - 你在做這個嗎?如果你真的需要,只需在'filter_var()'和'str_replace('%SomePlaceholderOfYourChoosing%')之前運行'str_replace(「\ r \ n」,'%SomePlaceholderOfYourChoosing%',$ str) ,「\ r \ n」,$ str);'之後 - 它是hacky,但它會完成這項工作。 – DaveRandom 2012-07-18 13:34:08

回答

0

您可以替換所有換行符的HTML實體
 - 在輸出爲HMTL時將顯示爲換行符。但是,如果您希望數據庫中具有可讀內容,則必須將它們還原爲原始換行符。

+0

謝謝你,會給它一個嘗試:) – 2012-07-19 11:02:19