亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 FILTER_SANITIZE_FULL_SPECIAL_CHARS 后使用并驗證 RTF

使用 FILTER_SANITIZE_FULL_SPECIAL_CHARS 后使用并驗證 RTF

PHP
慕哥9229398 2023-03-04 14:49:35
我正在嘗試驗證 TinyMCE 編輯器提供的富文本輸入。我非常清楚讓自己對 XSS 等開放,并希望做到這一點。在使用以下代碼對 POST 數據執行任何操作之前,我正在對其進行清理://sanitise POST array$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS);然后我有一個自定義驗證類來檢查每個字段輸入,現在它已經被清理過,但是......我不確定如何檢查經過清理的 RTF 輸入。例如,我正在使用 ctype-alpha 來檢查 alpha 輸入和 filter_var($this->currentObject->value, FILTER_VALIDATE_EMAIL 來檢查有效的電子郵件地址,但我不確定如何使用經過清理的 tinyMCE 字段。我想我需要的可能是一個正則表達式?有誰知道檢查 tinyMCE RTF 輸入的正確表達式?我這樣做是正確的嗎???如果使用正則表達式,我可以使用下面的函數返回它是否有效://used to send a custom regexfunction regex($regex, $errorMsg = null){  if ($this->isValid && (!empty($this->currentObject->value))) {    $this->isValid = (filter_var($this->currentObject->value, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "$regex")))) ? true : false;    if (!$this->isValid) {      $this->setErrorMsg($errorMsg, self::$error_regex);    }  }  return $this;}我認為這會起作用,但我是否遺漏了任何字符?^[a-zA-Z0-9\s&amp;|&\.\!?\;\\\-\<\>\/]*$
查看完整描述

1 回答

?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

您可以使用以下函數來清理用戶輸入。自定義正則表達式函數可能有一些特殊情況。


sanitize

---------

htmlspecialchars(filter_var($string, FILTER_SANITIZE_STRING), ENT_QUOTES, 'UTF-8');


wordsanitize

------------

  $string =  preg_replace('~\W+~', '', $string);

  htmlspecialchars(filter_var($string, FILTER_SANITIZE_STRING), ENT_QUOTES, 'UTF-8');



charactersanitize

-----------------

  $string =  preg_replace('~[^A-Za-z_.]~', '', $string);

  htmlspecialchars(filter_var($string, FILTER_SANITIZE_STRING), ENT_QUOTES, 'UTF-8');



numbersanitize

--------------

  $string =  preg_replace('~\D+~', '', $string);

  htmlspecialchars(filter_var($string, FILTER_SANITIZE_STRING), ENT_QUOTES, 'UTF-8');



查看完整回答
反對 回復 2023-03-04
  • 1 回答
  • 0 關注
  • 230 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號