代码之家  ›  专栏  ›  技术社区  ›  Devner

PHP,MySQL:安全问题;页面以一种奇怪的方式加载

  •  1
  • Devner  · 技术社区  · 15 年前

    http://localhost/domain/user/index.php/apple.php
    

    当我这样做时,页面加载不正常;相反,页面中使用的图像、图标只是从页面中消失。只显示文本。在我点击的任何链接上,它都会再次将我带到同一个页面,而不会导航到所需的页面。因此,如果我有指向其他页面的超链接,比如“SEARCH”,它指向SEARCH.php,而不是导航到SEARCH.php页面,它会刷新index.php页面,并将目标页面的页面名称附加到URL的末尾。

    http://localhost/domain/user/index.php/search.php
    

    search.php

    我本以为会看到404错误,但那没有发生。URL甚至不能加载页面,因为我没有

    我能做些什么来解决这个问题?感谢所有的帮助。

    更新:

    安全性问题是,用户能够看到一个不存在的页面(这是相当误导性的),如 http://localhost/domain/user/index.php/apple.php 尤其是当它不存在的时候。这让我觉得,这将打开大门,黑客利用网站,并损害其完整性。这种情况会发生吗?我希望用户看到一个404错误页和任何我愿意在.htaccess文件中进行的任何更改,以适应这一点。

    非常感谢。

    /*.htaccess in domain root*/
    ErrorDocument 404 /domain/404.php
    
    /*.htaccess in user folder*/
    ErrorDocument 404 /domain/user/404.php
    

    编辑2:

    <Files "mypaths.php">
    Options +Includes
    SetOutputFilter INCLUDES
    AcceptPathInfo Off
    </Files>
    

    但这仍然没有显示404页。抱歉,我对.htaccess很不熟悉。希望你能告诉我我错了。谢谢。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Pekka    15 年前

    为什么加载页面的行为:

    http://localhost/domain/user/index.php/apple.php
    

    很容易解释。请求传递给 index.php ,与 apple.php $_SERVER["PATH_INFO"] 变量。

    所以你在 /user 服务器和PHP脚本所关心的目录。

    索引.php

    然而,浏览器解释 索引.php 不是作为文件,而是作为 苹果.php .

    contact.php 获取方式如下:

     http://localhost/domain/user/index.php/contact.php
    

    这显然行不通。

    您可能想做的是在图像和链接中使用绝对路径,但无论哪种方式,这都与安全无关。

    作为一个补充说明,这种现象有时被用来创建搜索引擎友好的网址,而不必使用 mod_rewrite

    AcceptPathInfo 指令。

        2
  •  0
  •   Your Common Sense    15 年前

    绝对路径

    只是代替了 images/head.jpg /images/head.jpg 你将拥有你所有的形象和风格。

    至于 /user/index.php/apple.php -你为什么要这么奇怪的地址?
    user/apple.php ?

    你的问题是什么?