tp5防止sql注入mysql_TP5框架 《防sql注入、防xss攻击》
版權聲明:本文為博主原創文章,轉載請注明原文出處! https://blog.csdn.net/qq_23375733/article/details/86606630
如題:tp5怎么防sql注入 xss跨站腳本攻擊呢?
其實很簡單,TP框架中有自帶的,在?application/config.php 中有個配置選項:
框架默認沒有設置任何過濾規則,你可以是配置文件中設置全局的過濾規則:
// 默認全局過濾方法 用逗號分隔多個
'default_filter' => 'htmlspecialchars,addslashes,strip_tags',
htmlspecialchars:防XSS攻擊,尖括號等轉義過濾
addslashes:防SQL注入,在每個雙引號(")前添加反斜杠
strip_tags:剝去字符串中的 HTML 標簽
把這些參數加上后,每次請求后端的接口中,框架就會對請求的變量進行自動過濾了。
也可以在獲取變量的時候添加過濾方法,例如:
Request::instance()->get('name','','htmlspecialchars'); // 獲取get變量 并用htmlspecialchars函數過濾Request::instance()->param('username','','strip_tags'); // 獲取param變量 并用strip_tags函數過濾Request::instance()->post('name','','org\Filter::safeHtml'); // 獲取post變量 并用org\Filter類的safeHtml方法過濾
可以支持傳入多個過濾規則,例如:
Request::instance()->param('username','','strip_tags,strtolower'); // 獲取param變量 并依次調用strip_tags、strtolower函數過濾
如果當前不需要進行任何過濾的話,可以使用(V5.0.3+版本)?ps: 這個方法測試了下,好像沒有起作用,你們也可以試下
Request::instance()->get('name','',false);?// 獲取get變量 并且不進行任何過濾 即使設置了全局過濾
如果有用到富文本編輯器或其他類似的提交html標簽的變量,可以使用:
htmlspecialchars() 函數把預定義的字符轉換為 HTML 實體。
預定義的字符是:
& (和號)成為 &
" (雙引號)成為 "
' (單引號)成為 '
< (小于)成為 <
> (大于)成為 >
htmlspecialchars_decode() 函數把預定義的 HTML 實體轉換為字符。
會被解碼的 HTML 實體是:
& 解碼成 & (和號)
" 解碼成 " (雙引號)
' 解碼成 ' (單引號)
< 解碼成 < (小于)
> 解碼成 > (大于)
htmlspecialchars_decode() 函數是 htmlspecialchars() 函數的反函數。
---------------------
版權聲明:本文為CSDN博主「濤々」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_23375733/article/details/86606630
總結
以上是生活随笔為你收集整理的tp5防止sql注入mysql_TP5框架 《防sql注入、防xss攻击》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python无法选择安装位置图_pyth
- 下一篇: centos mysql 5.6.36_