對不起,對我的英文不好!關於來自mysql數據庫的php輸入和輸出數據
正如我正在學習PHP,並有一些關於從數據庫中插入和輸出數據的問題。
我正在使用PHP PDO。
要插入的數據我使用下面的函數數據庫:所以
public static function validate($string){
$string = trim($string);
$string = htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
return $string;
}
當我插入這個數據O'Really <script>alert(is it safe?)</script>
我看到的數據是正確的(也許)逃脫/保存在數據庫中。像這樣:<script>alert(1)</script>
現在,當我輸出這個數據時,我應該使用任何PHP函數?
如果不是那麼安全嗎?
好吧,如果我使用任何PHP函數一樣htmlentities
然後將數據顯示這樣的O'Really <script>alert(is it safe?)</script>
關當然,我不想要的。
現在,當我編輯這個數據我看到的數據被保存到數據庫中像這樣:
O&#039;Really &lt;script&gt;alert(is it safe?)&lt;/script&gt;
你們能告訴我正確的方法/指導安全接入/輸出數據到/從數據庫?
如果您是網站上唯一的編輯,並且不擔心別人添加任何疑問,那就夠了,如果沒有,請檢查此工作表https://www.owasp.org/ index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet。另外,最好不要在表格中保存標籤,但在調用數據時添加標籤。 – AXAI
關於這個尖叫的一切「!️」修剪和逃避是兩個完全不同的問題。對輸入進行修剪和清理,如果**,則只能在**時顯示。對於HTML,你使用HTML轉義函數,對於JSON和JavaScript,它是不同的。在寫入數據庫時,盡一切努力**使用帶有佔位符值的準備好的語句**。 – tadman
你的問題與sql或注入無關。 –