搜尋
首頁後端開發php教程php網站安全性問題

一、常見PHP網站安全漏洞
對於PHP的漏洞,目前常見的漏洞有五種。分別是Session檔案漏洞、SQL注入漏洞、腳本 指令執行漏洞、全域變數漏洞和檔案漏洞。這裡分別對這些漏洞進行簡單的介紹。
1、session檔案漏洞
Session攻擊是駭客最常被使用的攻擊手段之一。當一個使用者造訪某一個網站時,為了免客 戶每進人一個頁面都要輸人帳號和密碼,PHP設定了Session和Cookie用於方便使用者的使用和訪問。 
2、SQL注入漏洞
在進行網站開發的時候,程式設計師由於對使用者輸人資料缺乏全面判斷或過濾不嚴導致服 務器執行一些惡意訊息,例如使用者資訊查詢等。駭客可以根據惡意程式傳回的結果獲取相應的資訊。這就 是月行胃的SQL注入漏洞。
3、腳本執行漏洞
腳本執行漏洞常見的原因是由於程式設計師在開發網站時對使用者提交的URL參數過濾較少引起的,使用者提交的URL可能包含惡意程式碼導致跨站腳本攻擊。腳本執行漏洞在先前的PHP網站中經常存在,但 是隨著PHP版本的升級,這些間題已經減少或不存在了。
4、全域變數漏洞
PHP中的變數在使用的時候不像其他開發語言那樣需要事先聲明,PHP中的變數可以不經聲明就直接使用,使用的時候系統自動創建,而且也不需要對變數類型進行說明,系統會自動根據上下文環境自動決定變數類型。這種方式可以大幅減少程式設計師程式設計中出錯的機率,使用起來非常的方便。 
5、檔案漏洞
檔案漏洞通常是由於網站開發者在進行網站設計時對外部提供的資料缺乏充分的過濾導 致駭客利用其中的漏洞在Web進程上執行相應的命令。假如在lsm.php包含這樣一段程式碼:include ($b."/aaa.php".),這對駭客來說,可以透過變數$b來實現遠端攻擊,可以是駭客自已的程式碼,用來實現 對網站的攻擊。可以向伺服器提交a.php include=http://lZ7.0.0. 1/b.php,然後執行b.php的指令。
二、PHP常見漏洞的防範措施
1、對於Session漏洞的防範

從前面的分析可以知道,Session攻擊最常見的就是會話劫持,也就是駭客透過各種攻擊手段取得使用者的Session ID,然後利用被攻擊使用者的身分登入對應網站。為此,這裡可以使用以下幾種方 法進行防範:一是定期更換Session ID,更換Session ID可以用PHP自帶函數來實現;二是更換Session名稱,通常情況下Session的預設名稱是PHPSESSID,這個變數一般是在cookie中保存的,如果更改了它的名稱,就可以阻檔黑客的部分攻擊;三是對透明化的Session ID進行關閉處理,所謂透明化也就是指在http請求沒有使用cookies來製定Session id時,Sessioin id使用鏈接來傳遞.關閉透明化Session ID可以透過操作PHP.ini檔案來實現;四是透過URL傳遞隱藏參數,這樣可以確保即使駭客獲取了session數據,但是由於相 關參數是隱藏的,它也很難取得Session ID變數值。
2、對SQL注入漏洞的防範
駭客進行SQL注入手段很多,而且靈活多變,但是SQL注人的共同點就是利用輸入過濾漏 洞。因此,要從根本上防止SQL注入,根本解決措施就是加強對請求命令尤其是查詢請求命令的過濾。具 體來說,包括以下幾點:一是把過濾性語句進行參數化處理,也就是透過參數化語句實現使用者資訊的輸入而 不是直接把使用者輸入嵌入語句中。二是在網站開發的時候盡可能少用解釋性程序,黑客經常通過這種手段來執行非法命令;三是在網站開發時盡可能避免網站出現bug,否則黑客可能利用這些信息來攻擊網站;僅僅透過防禦SQL注入還是不夠的,另外還要經常使用專業的漏洞掃描工具對網站進行漏洞掃描。
3、對腳本執行漏洞的防範
黑客利用腳本執行漏洞進行攻擊的手段是多種多樣的,而且是靈活多變的,對此,必須要採用多種防範方法綜合的手段,才能有效防止駭客對腳本執行漏洞進行攻擊。這裡常用的方法方法有以 下四種。一是對可執行檔的路徑進行預先設定。可以透過safe_moade_exec_dir來實現;二是對指令參數 進行處理,一般用escapeshellarg函數實現;三是用系統自帶的函數庫來代替外部命令;四是在操作的時候 進可能減少使用外部命令。
4、對全域變數漏洞防範
對於PHP全域變數的漏洞問題,先前的PHP版本存在這樣的問題,但是隨著PHP版本升級到5.5以後,可以透過對php.ini的設定來實現,設定ruquest_order為GPC。另外在php.ini設定檔中,可以 透過對magic_quotes_runtime進行布林值設定是否對外部引人的資料中的溢出字元加反斜線。為了確保網 站程式在伺服器的任何設定狀態下都能運作。可以在整個程式開始的時候用get_magic_quotes_runtime檢 測設定狀態決定是否要手動處理,或者在開始(或不需要自動轉義的時候)用set_magic_quotes_runtime(0) 關掉。
5、對檔案漏洞的防範
對於PHP檔案漏桐可以透過設定伺服器和設定來達到防範目的。這裡具體的操作如 下:一是把PHP程式碼中的錯誤提示關閉,這樣可以避免駭客透過錯誤提示取得資料庫資訊和網頁檔案物理路 徑;二是對open_basedir盡心設置,也就是對目錄外的文件操作進行禁止處理;這樣可以對本地文件或者遠程文件起到保護作用,防止它們被攻擊,這裡還要注意防範Session文件和上載文件的攻擊;三是把safe- made設定為開啟狀態,從而對將要執行的命令進行規範,透過禁止文件上傳,可以有效的提高PHP網站的安全係數。 轉載請註明來源:PHP網站常見安全漏洞,及相應防範措施總結 
http://www.php1.cn/Content/PHP_WangZhanChangJianAnQuanLouDongJiXiangYingFangFanCuoShiZongJie.html

以上就介紹了php網站安全性問題,包括了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
SpringBoot Session怎么设置会话超时SpringBoot Session怎么设置会话超时May 15, 2023 pm 02:37 PM

问题发现springboot项目生产session-out超时问题,描述下问题:在测试环境通过改动application.yaml配置session-out,经过设置不同时间验证session-out配置生效,于是就直接设置了过期时间为8小时发布到了生产环境。然而中午接到客户反应项目过期时间设置较短,半小时不操作就会话过期需要反复登陆。解决处理开发环境:springboot项目内置Tomcat,所以项目中application.yaml配置session-out是生效的。生产环境:生产环境发布是

php session刷新后没有了怎么办php session刷新后没有了怎么办Jan 18, 2023 pm 01:39 PM

php session刷新后没有了的解决办法:1、通过“session_start();”开启session;2、把所有的公共配置写在一个php文件内;3、变量名不能和数组下标相同;4、在phpinfo里面查看session数据的存储路径,并查看该文件目录下的sessio是否保存成功即可。

session php默认失效时间是多少session php默认失效时间是多少Nov 01, 2022 am 09:14 AM

session php默认失效时间是1440秒,也就是24分钟,表示客户端超过24分钟没有刷新,当前session就会失效;如果用户关闭了浏览器,会话就会结束,Session就不存在了。

PHP如何在多个文件中正确地读取和写入Session数据PHP如何在多个文件中正确地读取和写入Session数据Mar 23, 2023 am 11:12 AM

当您在使用PHP会话(Session)时,有时会发现Session在一个文件中可以正常读取,但在另一个文件中却无法读取。这可能会让您感到困惑,因为会话数据应该可以在整个应用程序中共享。本文将解释如何在多个文件中正确地读取和写入PHP会话数据。

Redis的共享session应用如何实现短信登录Redis的共享session应用如何实现短信登录Jun 03, 2023 pm 03:11 PM

1.基于session实现短信登录1.1短信登录流程图1.2实现发送短信验证码前端请求说明:说明请求方式POST请求路径/user/code请求参数phone(电话号码)返回值无后端接口实现:@Slf4j@ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){//1.校验手机号if

Springboot2 session设置超时时间无效怎么解决Springboot2 session设置超时时间无效怎么解决May 22, 2023 pm 01:49 PM

问题:今天项目中遇到了一个设置时间超时的问题,按SpringBoot2的application.properties更改一直不生效。解决方案:server.*属性用于控制SpringBoot使用的嵌入式容器。SpringBoot将使用ServletWebServerFactory实例之一创建servlet容器的实例。这些类使用server.*属性来配置受控的servlet容器(tomcat,jetty等)。当应用程序作为war文件部署到Tomcat实例时,server.*属性不适用。它们不适用,

JavaScript和PHP的cookie之间有哪些区别?JavaScript和PHP的cookie之间有哪些区别?Sep 02, 2023 pm 12:29 PM

JavaScriptCookie使用JavaScriptcookie是记住和跟踪偏好、购买、佣金和其他信息的最有效方法。更好的访问者体验或网站统计所需的信息。PHPCookieCookie是存储在客户端计算机上的文本文件并保留它们用于跟踪目的。PHP透明地支持HTTPcookie。JavaScriptcookie如何工作?您的服务器将一些数据发送到访问者的浏览器cookie的形式。浏览器可以接受cookie。如果存在,它将作为纯文本记录存储在访问者的硬盘上。现在,当访问者到达站点上的另一个页面时

PHP如何处理微信小程序中的session问题PHP如何处理微信小程序中的session问题Jun 02, 2023 pm 03:40 PM

近年来,微信小程序风靡全球,已经成为了许多企业和个人开发者的首选平台。在小程序的开发中,我们经常会遇到session问题,也就是如何在小程序中保存用户登录状态。这个问题对于网站开发者来说并不陌生,但在小程序中却有些不同。本文将介绍如何使用PHP解决微信小程序中的session问题。一、小程序登录过程概述小程序的登录流程与网站的登录流程类似,分为以下几个步骤:

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。