0
4

1 回答 1

0

首先,您要包含一个完整的 HTML 文件。在浏览器中执行“查看源代码”,您会文档正文中找到<html><body>等。这会导致各种混乱,并且不知道每个浏览器将如何处理它。简而言之:这是错误的。

其次,看看你的例子,我认为你应该阅读W3fools page。花点时间真正阅读它。时间不长,将来可能会为您节省很多悲伤。

第三,通过访问http://snapi.vv.si/public_html/index.php?page=/etc/passwd,我会收到一条消息,告诉我您的主目录 ( /home/u460512479) 是什么。之后,我可以用来http://snapi.vv.si/public_html/index.php?page=/home/u460512479/<anything>从您的目录(不仅仅是网络!)目录中获取内容。任何对您的网络服务器可读的东西都对全世界都是可读的,只要它们获得文件名(可以猜到,蛮力,......)。永远,永远,相信用户的数据,即,无论你通过什么$_GET$_POST等等。

您需要的最低安全性是从 中删除所有目录信息$page,例如使用basename(). 这仍然使您的 Web 目录处于打开状态,但至少可以保护其他目录。但是,完全控制会更好。例如,可以以这种方式访问​​的页面数组。

记住:安全必须从一开始就做好,否则你会发现自己永远在修补和弄乱你的源代码。

于 2013-07-06T11:24:25.360 回答