目錄
1、程序代码漏洞问题
2、用户输入表单问题
3、PHP文件权限问题
4、隐藏PHP扩展名
首頁 後端開發 php教程 PHP安全性漫谈之PHP安全性设置

PHP安全性漫谈之PHP安全性设置

Jun 20, 2016 pm 01:02 PM
網站安全

PHP安全性漫谈之PHP安全性设置

服务器并不能阻止所有的安全问题,例如程序漏洞问题、用户输入表单问题、PHP文件权限问题等。也可以通过一些手段来迷惑黑客或者别有用心者。

1、程序代码漏洞问题

很多 PHP 程序所存在的重大弱点并不是 PHP 语言本身的问题,而是编程者的安全意识不高而导致的。因此,必须时时注意每一段代码可能存在的问题,去发现非正确数据提交时可能造成的影响。

  
unlink ($evil_var);    
fwrite ($fp, $evil_var);    
system ($evil_var);    
exec ($evil_var);    
登入後複製

必须时常留意你的代码,以确保每一个从客户端提交的变量都经过适当的检查,然后问自己以下一些问题:

  • 此脚本是否只能影响所预期的文件?
  • 非正常的数据被提交后能否产生作用?
  • 此脚本能用于计划外的用途吗?
  • 此脚本能否和其它脚本结合起来做坏事?
  • 是否所有的事务都被充分记录了?

在写代码的时候问自己这些问题,否则以后可能要为了增加安全性而重写代码了。注意了这些问题的话,也许还不完全能保证系统的安全,但是至少可以提高安全性。

还可以考虑关闭 register_globals,magic_quotes 或者其它使编程更方便但会使某个变量的合法性,来源和其值被搞乱的设置。

2、用户输入表单问题

验证用户输入的任何数据,保证PHP代码的安全。
注意1:JS只是为了提高来访用户的体验而产生的,而不是验证的工具。因为任何一个来访的用户都可能会,也有可能无意间就禁用了客户端脚本的执行,从而跳过这层验证。所以我们必须在PHP的服务器端程序上检验这些数据。
注意2:不要使用$_SERVER['HTTP_REFERER']这个超级变量来检查数据的来源地址,一个很小的菜鸟黑客都会利用工具来伪造这个变量的数据,尽可能利用Md5,或者rand等函数来产生一个令牌,验证来源的时候,验证这个令牌是否匹配。

3、PHP文件权限问题

PHP 被设计为以用户级别来访问文件系统,所以完全有可能通过编写一段 PHP 代码来读取系统文件如 /etc/passwd,更改网络连接以及发送大量打印任务等等。因此必须确保 PHP 代码读取和写入的是合适的文件。 请看下面的代码,用户想要删除自己主目录中的一个文件。假设此情形是通过 web 界面来管理文件系统,因此 Apache 用户有权删除用户目录下的文件。

 
$username = $_POST['user_submitted_name'];  
$homedir = "/home/$username";  
$file_to_delete = "$userfile";  
unlink ("$homedir/$userfile");  
echo "$file_to_delete has been deleted!";  
登入後複製

既然 username 变量可以通过用户表单来提交,那就可以提交别人的用户名和文件名,并删除该文件。这种情况下,就要考虑其它方式的认证:

  • 只给 PHP 的 web 用户很有限的权限。
  • 检查所有提交上来的变量。

以下是更加安全的文件名和变量的验证和检查:


$username = $_SERVER['REMOTE_USER'];   
$homedir = "/home/$username";  
if (!ereg('^[^./][^/]*$', $userfile))  
die('bad filename');   
if (!ereg('^[^./][^/]*$', $username))  
die('bad username');   
登入後複製

4、隐藏PHP扩展名

一般而言,通过隐藏的手段提高安全性被认为是作用不大的做法。但某些情况下,尽可能的多增加一份安全性都是值得的。

一些简单的方法可以帮助隐藏 PHP,这样做可以提高攻击者发现系统弱点的难度。在 php.ini 文件里设置 expose_php = off ,可以减少他们能获得的有用信息。

另一个策略就是让 web 服务器用 PHP 解析不同扩展名。无论是通过 .htaccess 文件还是 Apache 的配置文件,都可以设置能误导攻击者的文件扩展名:

# 使PHP看上去像其它的编程语言
AddType application/x-httpd-php .asp .py .pl # 使 PHP 看上去像未知的文件类型
AddType application/x-httpd-php .bop .foo .133t
# 使 PHP 代码看上去像 HTML 页面
AddType application/x-httpd-php .htm .html
登入後複製


要让此方法生效,必须把 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教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1323
25
PHP教程
1272
29
C# 教程
1251
24
php CodeIgniter安全指南:保護你的網站免於攻擊 php CodeIgniter安全指南:保護你的網站免於攻擊 Feb 19, 2024 pm 06:21 PM

1.使用最新版本的CodeIgniterCodeIgniter團隊會定期發布安全修補程式和更新來修復已知的漏洞。因此,確保你始終使用最新版本的CodeIgniter非常重要。你可以透過造訪CodeIgniter的官方網站來下載最新版本。 2.強制使用安全連線(HTTPS)https可以加密你的網站和使用者之間傳遞的數據,使其更難被惡意使用者截獲和竊取。你可以透過在你的伺服器上安裝SSL憑證來啟用HttpS。 3.避免使用預設配置CodeIgniter提供了許多預設配置來簡化開發過程。但是,這些預設配置可能並

網站安全開發實務:如何防止XML外部實體攻擊(XXE) 網站安全開發實務:如何防止XML外部實體攻擊(XXE) Jun 29, 2023 am 08:51 AM

網站安全開發實務:如何防止XML外部實體攻擊(XXE)隨著網路的發展,網站已成為人們獲取和分享資訊的重要途徑。然而,隨之而來的風險也不斷增加。其中之一就是XML外部實體攻擊(XXE),這是一種利用XML解析器漏洞的攻擊方式。在這篇文章中,我們將介紹什麼是XXE攻擊以及如何防止它。一、什麼是XML外部實體攻擊(XXE)? XML外部實體攻擊(XXE)是一種

網站安全開發實務:如何防止SSRF攻擊 網站安全開發實務:如何防止SSRF攻擊 Jun 29, 2023 am 11:58 AM

網站安全開發實務:如何防止SSRF攻擊隨著網路的快速發展,越來越多的企業和個人選擇將業務搬上雲端,網站安全問題也日益引起人們的關注。其中一個常見的安全威脅是SSRF(Server-SideRequestForgery,服務端請求偽造)攻擊。本文將介紹SSRF攻擊的原理與危害,並提供一些常用的防範措施,幫助開發人員加強網站的安全性。 SSRF攻擊的原理與危

利用ThinkPHP6實現網站安全偵測 利用ThinkPHP6實現網站安全偵測 Jun 20, 2023 am 09:03 AM

隨著網路的不斷發展,越來越多的網站湧現出來,但同時,網站的安全問題也愈發嚴重。駭客攻擊、惡意軟體、SQL注入等安全漏洞令網站業者頭痛不已。為了確保網站的安全性,網站建置和營運過程中的安全檢測也顯得格外重要。本文將介紹如何利用ThinkPHP6實現網站安全偵測,協助網站業者進一步提升網站安全性。一、什麼是ThinkPHP6ThinkPHP6是一款PH

詳解Discuz取消驗證碼功能對網站安全性的影響 詳解Discuz取消驗證碼功能對網站安全性的影響 Mar 11, 2024 am 10:45 AM

《Discuz取消驗證碼功能對網站安全性的影響探討》隨著網路的快速發展,網站安全問題日益凸顯。驗證碼作為常見的安全驗證機制,在網站中廣泛使用。然而,有些網站為了提高使用者體驗,可能會取消驗證碼功能,這是否會對網站安全性造成負面影響?本文將就Discuz取消驗證碼功能對網站安全性的影響進行探討,並提供具體的程式碼範例。一、驗證碼的作用及原理驗證碼(CAP

使用寶塔面板進行HTTPS升級,提升網站安全性 使用寶塔面板進行HTTPS升級,提升網站安全性 Jun 21, 2023 am 10:15 AM

隨著網路的發展,網站已成為企業展示形象和與外界交流的重要管道。然而,隨之而來的網路安全問題也確實令人擔憂。許多網站管理者可能已經意識到透過使用HTTPS協定來保護使用者資料和交易資訊的重要性,但是對於如何實現HTTPS升級可能還不是非常了解。本文將介紹如何利用寶塔面板進行HTTPS升級,提升網站的安全性。一、什麼是HTTPS? HTTP是超文本傳輸協議,是一

PHP防火牆實作:網站安全架構設計指南 PHP防火牆實作:網站安全架構設計指南 Jun 30, 2023 pm 06:57 PM

網站安全架構設計指南:PHP防火牆的實現引言:在現今的互聯網時代,網站安全問題日益嚴峻,不斷有駭客利用漏洞入侵網站,盜取用戶資訊或破壞網站正常運作。為了保護網站及其使用者的隱私和安全,建立一個可靠的安全架構是至關重要的。本文將重點放在PHP防火牆的實現,為網站安全架構提供指導。一、什麼是PHP防火牆? PHP防火牆是一種屏蔽惡意攻擊和入侵的安全措施,它透過過濾

PHP 網站安全與防護措施 PHP 網站安全與防護措施 May 04, 2024 pm 10:48 PM

PHP網站安全措施包括:防止SQL注入:使用預處理語句或轉義使用者輸入。防止XSS:轉義用戶輸入。防止CSRF:使用CSRF令牌。防止緩衝區溢位:設定最大輸入長度。保持更新、使用安全框架、啟用防火牆、監控網站、進行安全審核。

See all articles