对于一个学校项目,我必须使用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