403错误处理

403 Error handling

我有一个用 PHP 编写的基本 Web 应用程序,我希望确保安全,该应用程序位于本地 Web 服务器上。

当使用以下 url 字符串时:

http://localhost/test/index.php%20and%20substring(database(%20),1,1)=%22a%22

应用程序正在输出以下错误消息:

我希望网页显示类似 "URL Provided does not exist"

的消息

我创建了一个 .htaccess 文件并将其放入包含以下内容的目录中:

但我仍然面临提供文件结构、我正在使用的服务器以及它正在通信的端口的错误。

我做错了什么?

要允许 ErrorDocument,您需要将 AllowOverride 设置为 All。例如,这是我的 virtualhost 文件:

<VirtualHost *:80>
    ServerName localhost
    ServerAlias php.local
    ServerAlias sub.php.local

    LogLevel debug

    DocumentRoot /var/www/projects/php

    <Directory /var/www/projects/php>
    DirectoryIndex index.php
        AllowOverride All
        Order Allow,Deny
        Allow from All
    </Directory>

</VirtualHost>

您还可以将 AllowOverride 设置为 FileInfo 以使用 ErrorDocument

另见 https://httpd.apache.org/docs/2.4/custom-error.html