溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

復(fù)習(xí)PHP-安全

發(fā)布時間:2020-07-20 14:41:10 來源:網(wǎng)絡(luò) 閱讀:350 作者:qzd1989 欄目:web開發(fā)

1.安全記錄

修改php.ini中的open_basedir,防止越目錄訪問文件。

如果php作為apache模塊時,apache的權(quán)限一定不能為root。

如果php作為apache模塊時,應(yīng)當(dāng)使用apache驗證/LDAP/.htaccess等來設(shè)計自己的訪問模型,并把這些代碼作為php腳本的一部分。

php不能有root權(quán)限,否則將有可能有權(quán)限刪除和修改系統(tǒng)中的任何文件。

任何用戶提交的數(shù)據(jù)都必須經(jīng)過檢查和過濾。(特別對于文件的操作,必須要考慮到各種URL情況)

必須要考慮\0在文件路徑中的作用。(C語言如果讀到\0會停止繼續(xù)讀?。?/p>

SQL語句中的--是忽略后面句子的意思。

SQL中能確定變量的類型的,一定要強(qiáng)制轉(zhuǎn)換類型,而不要讓它存在不可預(yù)計的情況。(如age=’{$age}’,需要將$age強(qiáng)制int 或float)

必須時刻注意SQL語句中變量可能被變形的情況。

操作數(shù)據(jù)庫時可使用mysql_escape_string/sql_escape_string/addslashes/str_replace把敏感字符轉(zhuǎn)義。

記錄SQL查詢?nèi)罩居糜跈z查問題是個好辦法。

合理運(yùn)用PDO參數(shù)化進(jìn)行SQL查詢是個較好的辦法。

-----(以下摘自PHP手冊)

  • 永遠(yuǎn)不要使用超級用戶或所有者帳號去連接數(shù)據(jù)庫。要用權(quán)限被嚴(yán)格限制的帳號。
  • 檢查輸入的數(shù)據(jù)是否具有所期望的數(shù)據(jù)格式。PHP 有很多可以用于檢查輸入的函數(shù),從簡單的變量函數(shù)和字符類型函數(shù)(比如 is_numeric(),ctype_digit())到復(fù)雜的 Perl 兼容正則表達(dá)式函數(shù)都可以完成這個工作。
  • 如果程序等待輸入一個數(shù)字,可以考慮使用 is_numeric() 來檢查,或者直接使用 settype() 來轉(zhuǎn)換它的類型,也可以用 sprintf() 把它格式化為數(shù)字。

2.錯誤報告

常用的可行性辦法為測試開發(fā)時打開error_reporting 為E_ALL,正式上線改為0 并且關(guān)閉display_error 同時打開error_log記錄錯誤日志。

雖然默認(rèn)將register global、magic_quotes關(guān)閉但也應(yīng)當(dāng)檢查一下是否確定為關(guān)閉。

------(以下摘自PHP手冊,在用戶提交表單時,必須聯(lián)想到)

  • 此腳本是否只能影響所預(yù)期的文件?
  • 非正常的數(shù)據(jù)被提交后能否產(chǎn)生作用?
  • 此腳本能用于計劃外的用途嗎?
  • 此腳本能否和其它腳本結(jié)合起來做壞事?
  • 是否所有的事務(wù)都被充分記錄了?

3.隱藏PHP

php.ini 文件里設(shè)置 expose_php = off ,可以減少他們能獲得的有用信息。

另一個策略就是讓 web 服務(wù)器用 PHP 解析不同擴(kuò)展名。無論是通過 .htaccess 文件還是 Apache 的配置文件,都可以設(shè)置能誤導(dǎo)***者的文件擴(kuò)展名:

# 使PHP看上去像其它的編程語言
AddType application/x-httpd-php .asp .py .pl
4.保持更新
時常更新PHP版本啊哈哈。
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI