對於一個學校項目,我必須使用PHP生成一個網站,允許用戶生成自己的文章或評論新聞或其他文章。我想知道如何最好使用GET函數來顯示包含文件中的內容,並對其他包含文件使用get函數,例如開發人員(我)添加到網站的登錄頁面和其他內容,而不是作爲文章但作爲鏈接等任何人有任何建議或良好的教程,他們可以張貼。如何從PHP網站開始?
1
A
回答
1
你肯定會想 前消毒任何通過GET參數來在包括文件。通常通過檢查有效字符來完成此操作,並且由於它直接從文件系統調用文件,我通常會手動輸入有效的導航操作。這不是最優雅的解決方案,但通常是小應用程序最簡單和最安全的解決方案。
我通常爲此使用大小寫開關,但我也看到人們也使用奇特的正則表達式。
線沿線的東西:
if (isset($_GET['nav'])) {
switch ($_GET['nav']) {
case 'login':
case 'logout':
case 'article':
include($_GET['nav'] . '.php');
break;
default:
die('Invalid nav parameter');
break;
}
}
1
輪已經發明,測試,推出了一百萬英里:WordPress
1
這是我用什麼...
function safeIncludeFile($path)
{
$regex = '/[a-z0-9\-_]+/i'; // match only a to z, 0 to 9 and the minus and unscore character. case insensitive. adjust to accommodate your file naming schema.
return preg_match($regex, $path);
}
然後做這樣的事情
if (isset($_GET['page']) && safeIncludeFile($_GET['page'])) {
require PATH_TO_INCLUDES . $_GET['page'] . '.inc.php';
}
0
你也可以有一個充當白名單的陣列
$allowedIncludes = array('home', 'about', 'news');
,然後檢查請求的頁面在那裏
if(in_array($_GET['page'], $allowedIncludes)){
include $_GET['page'].'.php';
}else{
die('Forbidden!');
}
因此,你不必爲「案例」添加到您的交換機每次你添加的東西。
相關問題
- 1. 從頭開始創建網站
- 2. Scriplet停止網站從開始
- 3. 另一個網站的鏈接從主網站開始
- 4. 如何從WebStorm內部的grunt serve開始調試Angular網站?
- 5. 開始外部網站以 「//」
- 6. PHP:從網站
- 7. 何時開始性能調優網站
- 8. 可以開始開發移動網站
- 9. 如何開始新的貝寶開發網站
- 10. 你如何從我的網站打開另一個網站
- 11. PHP - 如何從5000開始計數
- 12. 如何從PHP調用網站服務?
- 13. PHP開源拍賣網站
- 14. 從哪裏開始爲網站開發應用程序
- 15. 我應該如何開始使用PHP Zend框架的OOP基礎的網站
- 16. 開始新的網站 - 我應該「使用模板」還是「從頭開始寫」
- 17. 如何開始,從哪裏開始MScharts?
- 18. 網站和移動網站創建 - 剛開始這個項目
- 19. 圖片瀏覽網站在PHP的想法和從哪裏開始?
- 20. XML通過FTP和Memcache突然減緩我的PHP網站....從今天開始
- 21. 開始使用Python創建網站
- 22. 在Laravel開始多語言網站
- 23. 設置umbraco網站的開始節點
- 24. 運行aspnet網站開始父目錄
- 25. 從網站打開文件
- 26. 從UITabBarController打開網站
- 27. 如何開始使用Delphi Prism製作網站?
- 28. 如何開始使用Bootstrap構建網站?
- 29. 投資組合網站 - 我應該如何開始
- 30. 已經有一個Magento網站,如何開始使用Bitbucket
我們都在想它...... – cole 2009-02-19 01:06:28