關於PHP安全程式設計的一些建議
簡介
要提供網路服務,在開發程式碼的時候必須隨時保持安全意識。可能大部分 PHP 腳本都對安全問題不在意,這很大程度是因為有大量的無經驗程式設計師在使用這門語言。但是,沒有理由讓你因為對你的程式碼的不確定性而導致不一致的安全性策略。當你在伺服器上放任何涉及到錢的東西時,就有可能會有人嘗試破解它。創建一個論壇程式或任何形式的購物車,被攻擊的可能性就上升到了無窮大。
推薦PHP影片教學:https://www.php.cn/course/list/29/type/2.html
背景
為了確保你的web 內容安全,這裡有一些常規的安全準則:
1、別相信表單
register_globals 設定參數。幸運的是,PHP 4.2 及以後版本預設關閉了這個配置。如果打開了
register_globals,你可以在你的php.ini 檔案中透過改變
register_globals 變數為Off 關閉該功能:
register_globals = Off
process.php 的腳本,它會在你的資料庫中插入表單資料。初始的表單像下面這樣:
<input name="username" type="text" size="15" maxlength="64">
process.php 的時候,啟用了註冊全域變數的 PHP 會將該參數賦值到
$username 變數。這會比透過
$_POST['username'] 或
$_GET['username'] 存取它來節省擊鍵次數。不幸的是,這也會給你留下安全性問題,因為PHP 會設定該變數的值為透過GET 或POST 的參數發送到腳本的任何值,如果你沒有顯示地初始化該變數並且你不希望任何人去操作它,這會有一個大問題。
$authorized 變數的值為 true,它會給使用者顯示通過驗證的資料。正常情況下,只有當使用者正確通過了這個假想的
authenticated_user() 函數驗證,
$authorized 變數的值才會被設定為真。但如果你啟用了
register_globals,任何人都可以傳送一個 GET 參數,例如
authorized=1 去覆寫它:
<?php // Define $authorized = true only if user is authenticated if (authenticated_user()) { $authorized = true; } ?>
这个故事的寓意是,你应该从预定义的服务器变量中获取表单数据。所有通过 post 表单传递到你 web 页面的数据都会自动保存到一个称为 $_POST
的大数组中,所有的 GET 数据都保存在 $_GET
大数组中。文件上传信息保存在一个称为 $_FILES
的特殊数据中。另外,还有一个称为 $_REQUEST
的复合变量。
要从一个 POST 方法表单中访问username字段,可以使用 $_POST['username']
。如果 username 在 URL 中就使用$_GET['username']
。如果你不确定值来自哪里,用 $_REQUEST['username']
。
<?php $post_value = $_POST['post_value']; $get_value = $_GET['get_value']; $some_variable = $_REQUEST['some_value']; ?>
$_REQUEST
是 $_GET
、$_POST
、和 $_COOKIE
数组的结合。如果你有两个或多个值有相同的参数名称,注意 PHP 会使用哪个。默认的顺序是 cookie
、POST
、然后是 GET
。
以上就是为大家整理的一些编程安全建议。更过相关问题请访问PHP中文网:https://www.php.cn/
以上是關於PHP安全程式設計的一些建議的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

IntelTXT是Intel公司推出的硬體輔助安全技術,它可以透過在CPU和BIOS間建立一個受保護的空間,來確保伺服器在啟動時的完整性和安全性。 TXT的全名為TrustedExecutionTechnology,也就是可信執行技術。簡單來說,TXT是一種安全技術,它可以提供硬體層級的保護,確保伺服器在啟動時沒有被惡意程式或未經授權的軟體修改。這

HTTP回應分割攻擊(HTTPresponsesplittingattack)是一種利用網路應用程式處理HTTP回應的漏洞,攻擊者透過建構惡意HTTP回應將惡意程式碼注入到合法回應中,來實現攻擊使用者的目的。 PHP作為常用的Web開發語言,也面臨HTTP回應拆分攻擊的威脅。本文將介紹如何使用PHP來預防HTTP回應拆分攻擊。了解HTTP響應拆分攻擊

比亞迪官方微信公眾號發布消息稱,比亞迪與音樂媒體科技公司Stingray達成合作協議,計劃從2023年起在新能源汽車上引入Stingray互動車載KTV產品,並在全球多個市場推廣據報道,比亞迪與Stingray合作開發的娛樂系統將為比亞迪的新能源汽車增加更多娛樂功能,以滿足用戶多樣化的需求。該娛樂系統將支援多種語言,提供用戶友好的介面設計,使用戶能夠輕鬆地按照歌曲的標題、藝術家、歌詞或流派進行搜尋。此外,該系統每月將自動更新曲目,為用戶帶來全新的音樂體驗為了確保駕駛安全,當車輛處於駕駛模式時,

隨著網路應用的不斷發展,我們需要越來越多的安全措施來保護我們的資料和隱私。其中,安全DNS解析是一項非常重要的措施,它可以保護我們不被惡意DNS伺服器攻擊。在Nginx反向代理中使用安全DNS解析也同樣重要。本文將討論Nginx反向代理程式中的安全DNS解析,並介紹如何設定。什麼是DNS解析? DNS(DomainNameSystem)解析是將網域名稱轉換為IP

在網路時代,資訊外洩已經成為了我們生活中非常普遍的現象。其中,網路鍵盤記錄器是一種非常有效率的駭客攻擊工具,透過記錄使用者輸入的內容,竊取使用者帳號密碼等敏感訊息,對個人隱私和財產造成威脅。因此,如何有效地防範網路鍵盤記錄器,成為了我們網路使用者所面臨的重要挑戰。本文將為大家介紹幾種避免成為網路鍵盤記錄器受害者的方法。定期更新作業系統和軟體網路鍵盤記錄器多

Nginx是一個廣泛使用的Web伺服器和反向代理伺服器,它具有可擴展的模組化結構和高效的效能優勢。然而,就像其他軟體一樣,Nginx也有可能存在安全漏洞。為了保護網站的安全性,Nginx的安全性更新非常重要。本文將介紹一些針對Nginx的安全性更新建議。定期更新Nginx對於任何軟體,更新是至關重要的。特別是對於Nginx這樣的Web伺服器和反向代理伺服器,如果

AMDSecureProcessor是指一種用於加強電腦系統安全性的協處理器。該技術由全球知名的半導體製造商AMD開發,旨在提供更強的系統安全保護措施。 AMDSecureProcessor的實作方式是將一個安全處理器整合於主處理器中,該處理器被設計用於執行安全相關的計算任務,並且擁有自己獨立的記憶體和記憶器,與主處理器相互隔離。這一協處理器的引入

隨著電子支付的流行,人們越來越依賴手機支付寶或微信支付等行動支付平台。這些平台為消費者和商家提供了一種方便且快速的支付方式,但同時,平台安全關乎使用者的資產和個人資訊安全。在這篇文章中,我們將探討微信支付的安全性,以評估其在保護使用者的個人資訊和帳戶安全等方面的表現。首先,我們需要了解微信支付中的安全機制。微信支付遵循PCI-DSS(PaymentCard
