對於無副檔名的PHP程式的研究

來源:互聯網
上載者:User

對於無副檔名的PHP程式的研究

作者:PHP
環境:WinXp Pro + Apache 2.0.49 + PHP 4.3.5 (Module)

  將沒有副檔名的PHP代碼,給PHP解譯器解釋,好處在於大大增加了安全性,給入侵的人、盜鏈的人,增加了迷惑性。例如:

http://www.msger.net/chat?username=Hackfan
http://www.msger.net/images/test.gif

  從一般認識來看,上文的2個URL很有可能是這樣的:

/
|-chat/
????? |-index.php
|-images/
????? |-test.gif

  但是Apache + PHP可以讓chat、images變成一個PHP程式,而把後面的部分作為參數。事實上,這2個URL很有可能:

/
|-chat.??? (PHP File)
|-images.? (PHP File)
|-imagessecret/? (Directory)

  而http://www.msger.net/images/test.gif將交給images這個PHP程式來處理。下面給出這個程式的部分環境變數:

_SERVER["REQUEST_URI"] = /images/test.gif
_SERVER["SCRIPT_NAME"] = /images
_SERVER["PATH_INFO"]?? = /test.gif
_SERVER["PHP_SELF"]??? = /images/test.gif

  大家注意到了,Apache除了對_SERVER["SCRIPT_NAME"]有正確的判斷以外,其他的資訊幾乎都是被我們欺騙了。不知道大家想到利用這個性質我們可以做什麼,反正我想到了可以防止圖片被盜鏈。

  另外,找遍了很多資料,最後還是通過自己,使得Apache能夠對沒有副檔名的PHP檔案進行正確的解釋:

  修改httpd.conf,找到,增加:DefaultType application/x-httpd-php

  最後一些遺留問題:

  對於http://www.msger.net/images/../test.gif這類的請求,伺服器會如何處理呢?不要用IE發送這樣的請求,因為IE自動會處理。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.