Apache 配置错误页面以显示modsecurity的日志
我正在寻找一种方法,使规则(已触发的规则)的消息信息出现在错误和/或审核日志文件中,并在响应头中发送回客户端。 我知道有一个“msg”阶段,但它没有在响应头中发送回客户机信息,所以它对我没有帮助。 我想在html的错误页面中查看日志信息,我能做什么? 谢谢你的帮助,Apache 配置错误页面以显示modsecurity的日志,apache,mod-security,Apache,Mod Security,我正在寻找一种方法,使规则(已触发的规则)的消息信息出现在错误和/或审核日志文件中,并在响应头中发送回客户端。 我知道有一个“msg”阶段,但它没有在响应头中发送回客户机信息,所以它对我没有帮助。 我想在html的错误页面中查看日志信息,我能做什么? 谢谢你的帮助, Vladi.让客户知道到底出了什么问题是个坏主意。黑客可以利用它来绕过您的安全框架。更好的方法是将mod\u unique\u id和自定义错误页面结合起来。应采取的步骤: 使用apache配置启用mod\u unique\u i
Vladi.让客户知道到底出了什么问题是个坏主意。黑客可以利用它来绕过您的安全框架。更好的方法是将
mod\u unique\u id
和自定义错误页面结合起来。应采取的步骤:
- 使用apache配置启用
mod\u unique\u id
- 为您感兴趣的http返回代码创建自定义错误页(下面的示例)
- 在apache配置中启用这些选项(
errordocument403//403.php,本例中为
)
403.php
(不,纯静态页面不起作用):
您无权访问此资源(403)
发生了一个错误。请告诉管理员错误代码:
这只是一个非常简短的变体,没有任何样式等(您可能想增强它),但顺便说一句,我让它简单易懂。$msg
将打印唯一的代码。客户机可以告诉您这段代码,您可以使用它在错误日志中查找准确的行,在那里您将看到哪个规则触发了它,等等
<?php
$protocol = $_SERVER['SERVER_PROTOCOL'];
header("$protocol 403 Forbidden");
header("Status: 403 Forbidden");
header("Connection: close");
$msg = $_SERVER["UNIQUE_ID"];
?>
<HTML><HEAD>
<TITLE>You have no access to this resource (403)</TITLE>
</HEAD><BODY>
<P>An error occured. Please tell the admin the error code: <?php echo $msg; ?></P>
</BODY></HTML>