Php 带有报告功能的html中的404页错误
我一直试图让一个错误页面(404)工作,它确实工作,但我无法让它报告用户试图访问的文件 在脚本中,我调用了REQUEST_URI $requri=getenv(“请求URI”); 我也试过了 $requri=($_服务器['REQUEST_URI']) 他们似乎都报告了“404.php”,这是错误页面本身,而不是他们写的错误地址 我不知道为什么它认为错误页面是请求的页面。。。 除非使用.htaccess命令; 错误文档404Php 带有报告功能的html中的404页错误,php,.htaccess,Php,.htaccess,我一直试图让一个错误页面(404)工作,它确实工作,但我无法让它报告用户试图访问的文件 在脚本中,我调用了REQUEST_URI $requri=getenv(“请求URI”); 我也试过了 $requri=($_服务器['REQUEST_URI']) 他们似乎都报告了“404.php”,这是错误页面本身,而不是他们写的错误地址 我不知道为什么它认为错误页面是请求的页面。。。 除非使用.htaccess命令; 错误文档404 有故障,但我不认为有故障。您应该(1)使用路由器处理应用程序中的404
有故障,但我不认为有故障。您应该(1)使用路由器处理应用程序中的404,而不是使用
ErrorDocument
,或者(2)使用重写规则,如中所示
一旦您完成上述操作,$\u服务器['REQUEST\u URI']
确实是您想要的。但你不应该以原始的形式重复它。它很容易控制攻击。相反,假设您只是在屏幕上显示它(而不是在HTML标记的参数中),您将使用htmlentities()
,如中所示
echo htmlentities($_SERVER['REQUEST_URI']);
实际上,您希望使用$\u服务器[“重定向URI”]
。
我只是查了一下,有时候我会使用htmlspecialchars(strip\u标记(stripslashes($\u SERVER[“REQUEST\u URI”]))
但是请注意,我建议您使用ErrorDocument 404/404.php
(本地而不是完整的url)进行重定向(或者甚至使用单个/error.php
进行多个状态代码,例如401和403,并评估$\u服务器[“REDIRECT\u status”]
)哪个框架,可能有一些代码?可能重定向到404.php页面。试试$\u服务器['HTTP\u REFERER']
.Frameworks?我对这一点很陌生xss不是一个问题(我认为),实际上我对这一切都很陌生,但我基本上希望系统发送一封包含错误信息的邮件。@JoBe xss绝对是一个问题;它是最普遍的攻击媒介之一。一般来说,你不应该信任任何类型的用户输入,请求的URL绝对是用户输入。好吧,我不是想说xxs不是问题,我甚至不知道它是什么,但不管它是什么,它肯定不会干扰php通过邮件将字符串发送给我?@JoBe it肯定会引起问题。XSS在电子邮件中的问题要比在网页中少,但这并不意味着你可以忽略它。还有其他类型的注入可以在电子邮件上下文中使用。同样,规则总是将数据视为危险的,即使你不知道如何在攻击中使用它。好吧,我从来没有听说过,我想我需要查找它,thx的提示。这个很好,分类l显然,如果你写完整的路径(),服务器会将错误404 php文件作为Uri调用,但正如Hagen von Eitzen(/404.php)所建议的那样,在本地调用是有效的!