Apache 配置错误页面以显示modsecurity的日志

Apache 配置错误页面以显示modsecurity的日志,apache,mod-security,Apache,Mod Security,我正在寻找一种方法,使规则(已触发的规则)的消息信息出现在错误和/或审核日志文件中,并在响应头中发送回客户端。 我知道有一个“msg”阶段,但它没有在响应头中发送回客户机信息,所以它对我没有帮助。 我想在html的错误页面中查看日志信息,我能做什么? 谢谢你的帮助, Vladi.让客户知道到底出了什么问题是个坏主意。黑客可以利用它来绕过您的安全框架。更好的方法是将mod\u unique\u id和自定义错误页面结合起来。应采取的步骤: 使用apache配置启用mod\u unique\u i

我正在寻找一种方法,使规则(已触发的规则)的消息信息出现在错误和/或审核日志文件中,并在响应头中发送回客户端。 我知道有一个“msg”阶段,但它没有在响应头中发送回客户机信息,所以它对我没有帮助。 我想在html的错误页面中查看日志信息,我能做什么? 谢谢你的帮助,
Vladi.

让客户知道到底出了什么问题是个坏主意。黑客可以利用它来绕过您的安全框架。更好的方法是将
mod\u unique\u id
和自定义错误页面结合起来。应采取的步骤:

  • 使用apache配置启用
    mod\u unique\u id
  • 为您感兴趣的http返回代码创建自定义错误页(下面的示例)
  • 在apache配置中启用这些选项(
    errordocument403//403.php,本例中为
下面是一个403错误页面的示例,我们称之为
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>