所以,好的。我有很多PHP文件和一個index.php文件。如果沒有index.php文件,所有文件都無法運行,因爲我將它們包含在index.php中。例如。如果有人點擊Contact us
,該網址將變得像index.php?id=contact
那樣不起作用,並且我使用$_GET['id']
來包含contacts.php文件。但是,如果有人找到文件的路徑,例如/system/files/contacts.php
我不希望那個文件被執行。所以,我發現我可以在包含index.php這樣的任何文件之前添加這樣的文件,如$check_hacker = 1
,並且在每個文件中使用if
,像這樣開始的if($check_hacker <> 1) die();
。那麼,如何在不打開所有文件的情況下將其添加到每個文件中?可能嗎?因爲我實際上有很多.php文件。也許還有其他的方式來禁用看單獨的文件?有任何想法嗎?
謝謝。如何在所有php文件的開頭添加一行?
回答
你可以把你的index.php放在你的web目錄中。並將其包含的所有文件放入另一個非web目錄中。
假設你的網站http://www.example.com/index.php實際上是/path/to/your/home/www/index.php
,你可以把contact.php放在/path/to/your/home/includes/contact.php
。沒有.htaccess,重寫,自動附加。只需要一個好的文件結構和一臺配置好的服務器。
編輯細節,我對使用XAMP評論:
在httpd.conf文件,添加如下內容:
<Directory "/path/to/your/site/root">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
<VirtualHost *:80>
DocumentRoot /path/to/your/site/root
ServerName www.example.org
</VirtualHost>
然後在您的Windows主機文件(在C:\ Windows \ System32下\ drivers \ etc下),加入這一行:
127.0.0.1 www.example.com
我想在這種情況下使用mod_rewrite(如果你使用Apache)。它比在PHP中寫入無用的if
s更加乾淨。
這樣,如果有人想「破解它」並嘗試/system/files/contacts.php
,它會將它們重定向到index.php?id=contact
或任何其他網站。
我強烈建議使用.htaccess文件拒絕文件不同的所有請求index.php,但我不太清楚如何做到這一點。
這可能會實現(現在不能測試),但它也將阻止請求CSS,JS等:
order deny,allow
<FilesMatch "\.php">
deny from all
</FilesMatch>
<FilesMatch "(index.php)">
allow from all
</FilesMatch>
如果有人知道正確的解決方案,請編輯我的答案。 您可能會檢查此問題:Deny direct access to all .php files except index.php
因此,除了index.php規則之外,您可能只有一個用於php文件的FilesMatch。
編輯:新版本的代碼似乎工作。
RewriteCond %{REQUEST_URI} system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
將重定向到系統文件夾的任何嘗試回到根!
針對蛟川男孩:在新目錄中
將所有PHP文件(除的index.php),並把.htaccess文件,其內容如下:
deny from all
製作確保你不要在這個目錄中放置任何images/css/jscript資源,因爲它們也會被阻止。
這也是一個好主意,以避免與阻止圖像,CSS和JS的問題! – 2ndkauboy 2010-05-31 15:03:39
在php.ini或在你的htaccess設置以下變量:
auto_prepend_file="[path to some .php file]"
這將包括一個您選擇的頭文件,它將包含在系統上的所有php腳本之前。
php.ini指令auto_append_file
將創建一個包含在系統上所有PHP文件末尾的頁腳。
這很酷。但它也會將它預備到index.php,因此所有文件都會在執行時被阻止。所以他必須在已插入文件的插入文件中檢查。 – 2ndkauboy 2010-06-02 15:13:46
- 1. 如何在所有.sh文件的開頭添加她?
- 2. 如何在C++文件的開頭添加一行?
- 3. 到第一線和不同的文字的所有後續行的開頭的開頭添加文本文件
- 4. 如何將文本添加到文件夾中所有文件的開頭?
- 5. 如何添加在每行的開頭添加文本?
- 6. 如何在eclipse中的所有java文件中添加一行
- 7. 如何將文件添加到開頭?
- 8. 如何向文件中以「hello」開頭的行添加文本
- 9. 在所有的jsps中添加一個jsp作爲頭文件
- 10. 如何在當前目錄下找到所有php文件並添加一行
- 11. 如何在文件中每行的開頭添加一個字符串
- 12. 在一個非常大的文件開頭添加兩行的有效方法
- 13. 如何在所有塊引號的開頭添加一個FontAwesome字符?
- 14. 如何在新行的開頭添加自動文本?
- 15. 如何在datagrid控件的每一行的開頭添加複選框控件?
- 16. 如何爲所有RESTAdapter實體請求添加頭文件
- 17. 在文件開頭添加數據
- 18. 更新一行中的所有列(將xxx-xxx添加到每行的開頭)
- 19. 如何在文件開頭添加文本?
- 20. 添加所有行的值在PHP
- 21. 如何在文件的開頭添加信息使用perl
- 22. 添加到行的開頭
- 23. ,如何在celltable頭部添加一行?
- 24. 添加HTML頁腳/頭在PHP文件
- 25. 如何在Lineman中的app.js中添加一個JavaScript文件,在HTML的開頭?
- 26. 如何在一箇中添加所有Javascript文件的引用?
- 27. 在文件的每一行的開頭和末尾添加一個字符
- 28. 在.lst文件的每一行的開頭添加一個數字
- 29. 添加一些頭文件,vim會在打開文件時自動執行它?
- 30. 將第一行添加到文件開頭的每一行的shell
我一直這樣做,但在我的xampp localhost中是不夠的。 – 2010-06-03 16:04:00
不要告訴我你用xamp來託管你的網站。 無論如何,你可以改變你的apache配置來映射新的目錄作爲web訪問。然後在主機文件中添加一行,然後設置。 – Arkh 2010-06-03 17:58:36
當然,我僅使用xampp進行測試。好的,謝謝,夥計。 – 2010-06-03 18:40:38