目錄
整理一些PHP開發安全性問題
# 擴充功能閱讀
首頁 後端開發 php教程 整理的一些PHP開發安全問題

整理的一些PHP開發安全問題

Apr 04, 2018 pm 02:24 PM
php 安全 問題

整理一些PHP開發安全性問題



  php給了開發者極大的靈活性,但這也為安全問題帶來了潛在的隱患,近期需要總結一下以往的問題,在這裡借翻譯一篇文章同時加上自己開發的一些感觸總結一下。





 簡介

  當開發一個互聯網服務的時候,必須時刻牢記安全觀念,並在開發的程式碼中體現。 PHP腳本語言對安全性問題並不關心,特別是對大多數沒有經驗的開發者來說。每當你講任何涉及到錢財事務等交易問題時,需要特別注意安全問題的考慮,例如開發一個論壇或是一個購物車等。


 安全保護一般要點

不相信表單

  對於一般的Javascript前台驗證,由於無法得知使用者的行為,例如關閉了瀏覽器的javascript引擎,這樣透過POST惡意資料到伺服器。需要在伺服器端進行驗證,對每個php腳本驗證傳遞到的數據,防止XSS攻擊和SQL注入


#不相信用戶

  要假設你的網站接收的每一條資料都是存在惡意程式碼的,存在隱藏的威脅,要對每一條資料都進行清理


關閉全域變數

  在php.ini檔案中進行以下設定:

register_globals = Off
登入後複製



  如果這個設定選項開啟之後,會出現很大的安全隱患。例如有一個process.php的腳本文件,會將接收到的資料插入資料庫,接收使用者輸入資料的表單可能如下:

<input name="username" type="text" size="15" maxlength="64">
登入後複製



  這樣,當提交資料到process.php之後,php會註冊一個$username變量,將這個變數資料提交到process.php,同時對於任何POST或GET請求參數,都會設定這樣的變數。如果不是顯示進行初始化那麼就會出現下面的問題(參考:http://www.lai18.com/content/434606.html)

<?php
// Define $authorized = true only if user is authenticated
if (authenticated_user()) {
    $authorized = true;
}
?>
登入後複製



此處,假設authenticated_user函數就是判斷$authorized變數的值,如果開啟了register_globals配置,那麼任何使用者都可以發送一個請求,來設定$authorized變數的值為任意值從而就能繞過這個驗證。

  所有的這些提交資料都應該透過PHP預先定義內建的全域數組來獲取,包括$_POST、$_GET、$_FILES、$_SERVER、$_REQUEST等,其中$_REQUEST是一個$_GET/$ _POST/$_COOKIE三個數組的聯合變量,預設的順序是$_COOKIE、$_POST、$_GET。


建議的安全配置選項

  error_reporting設定為Off:不要暴露錯誤訊息給用戶,開發的時候可以設定為ON

  safe_mode設定為Off

  register_globals設定為Off

  將以下函數停用:system、exec、passthru、shell_exec、proc_open、popen

  open_basedir設定為/tmp ,這樣就可以讓儲存空間有儲存權限,同時設置單獨的網站根目錄

  expose_php設置為Off

  allow_url_fopen設置為Off

  allow_url_include設置為Off


 SQL注入攻擊

  對於操作資料庫的SQL語句,需要特別注意安全性,因為使用者可能輸入特定語句使得原有的SQL語句改變了功能。類似下面的範例: 


# 擴充功能閱讀


################################

《PHP安全程式設計系列》系列技術文章整理收藏

PHP安全程式設計系列收藏夾收藏了有關PHP安全程式設計的知識,對PHP安全程式設計提供學習參考 

1discuz的php防止sql注入函數

#2php防止xss攻擊的方法

3PHP安全性程式設計:對輸出要進行轉義

4PHP安全程式設計:過濾使用者輸入

5PHP安全程式設計:可用性與資料追蹤

6PHP安全程式設計:不要讓不相關的人看到報錯資訊


# 7PHP安全性程式設計:register_globals的安全性


#8PHP安全性程式設計:網站安全設計的一些原則


9PHP安全程式設計:關於表單欺騙提交


10PHP安全程式設計:HTTP請求欺騙


11PHP安全程式設計:不要暴露資料庫存取權限


12PHP安全編程:跨站請求偽造CSRF的防禦


13PHP安全編程:表單與數據安全性


14PHP安全程式設計:從URL的語意進行攻擊


15PHP安全程式設計:檔案上傳攻擊的防禦


16PHP安全程式設計:跨站腳本攻擊的防禦


17PHP安全程式設計:session固定取得合法會話


18PHP安全性程式設計:防止SQL注入


#19PHP安全性程式設計:cookie曝光導致session被劫持


#20PHP安全程式設計:防止原始碼的揭露


#21PHP安全程式設計:留心後門URL


##22PHP安全程式設計:session劫持的防禦


#23PHP安全程式設計:暴力破解攻擊


#24PHP安全編程:密碼嗅探與重播攻擊


25PHP安全性程式設計:記住登入狀態的安全性做法


26PHP安全性程式設計:shell指令注入


27PHP安全性程式設計:開啟遠端檔案的風險


28PHP安全性程式設計:檔案目錄猜測漏洞


29PHP安全程式設計:阻止檔案名稱被操縱


30PHP安全程式設計:檔案所包含的程式碼注入攻擊


31PHP安全程式設計:更優的會話資料安全性


32PHP安全程式設計:共享主機的原始碼安全性


33PHP安全性程式設計:會話資料注入


34PHP安全性程式設計:主機檔案目錄瀏覽


35PHP安全程式設計:PHP的安全模式


#36php安全性直接用$取得值而不$_GET字元轉義


37php防止漏洞策略,建立高效能web


38什麼XSS攻擊? PHP防止XSS攻擊函數


39解析php防止form重複提交的方法


40php安全之狗尾續貂

######

41PHP防止跨域提交表單

42php防止SQL注入詳解及防範

43php防止sql注入程式碼實例

44php防止sql注入範例分析和幾個常見攻擊正規表示式

##45PHP安全之防止你的原始碼或重要設定資訊暴露在外

46PHP防止post重複提交資料的簡單範例

47php防止偽造的資料從URL提交方法

48PHP防止表單重複提交的幾個常用方法匯總

49php防止偽造資料從網址列URL提交的方法

#50php防止站外遠端提交表單的方法

#51php防止sql注入之過濾分頁參數實例

52PHP安全性以Apache模式安裝時可能遇到的攻擊及解決方法

#53PHP安全之文件系統安全及防範措施

#54PHP安全性檔案系統安全性-Null字元問題

#55PHP安全之資料庫安全性-SQL注入及預防措施

#56PHP安全性簡介與總則

57PHP安全性之以CGI 模式安裝時可能遇到的攻擊及解決方案

#58PHP安全性使用者提交的資料

#59PHP安全之資料庫安全性-設計、連接與加密

#60PHP安全之魔術引號-什麼是魔術引號以及如何使用

61PHP安全性隱藏PHP腳本副檔名

62PHP安全性使用Register Globals

#63PHP安全性錯誤報告

#64php防止惡意刷新與刷票的方法

#65php防止網站被刷新的方法總結

66PHP網站常見安全漏洞,及相應防範措施總結

相關推薦:

針對PHP開發安全性問題的相關總結_PHP教學

以上是整理的一些PHP開發安全問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1250
24
PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP的持久相關性:它還活著嗎? PHP的持久相關性:它還活著嗎? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP與其他語言:比較 PHP與其他語言:比較 Apr 13, 2025 am 12:19 AM

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

See all articles