java是否可以在apache访问日志中排除指定的GET参数?(作者:W7开发环境)
apache的日志中隐藏着一个安全漏洞,比如如果您输入一个关于
http://localhost/meeting/import.php?cmd=admin&password=pass&userName=hsh&meetingID=123
进入浏览器,然后进入访问。log将完成记录,因此这是一个安全问题,因为它记录了安全参数:
cmd=admin&password=pass&userName=hsh&meetingID=123
现在,我想控制我的日志打印,如果我执行的url不包括安全参数,例如http://localhost/meeting/op.do,访问。日志必须记录它,但如果我输入包含安全参数的url,例如:
http://localhost/meeting/import.php?cmd=admin&password=pass&userName=hsh&meetingID=123
然后进入。日志不应该记录它,我应该去实现什么
我尝试了一种方法,将日志变量设置为关于setenif和CustomLog,但它不起作用:
SetEnvIf Request_URI "(https?://.+\\?([^=]+=[^=]+)+)" dontlog
CustomLog logs/access.log common env=!dontlog
b因为我的应用程序请求类型为get,所以如果执行URL,请求URI无法获取参数:
http://localhost/meeting/import.php?cmd=admin&password=pass
请求的URI是http://localhost/meeting/import.php,所以这种方法不可能成功
你有什么有用的方法或建议吗?如果你能解决这个问题,我将不胜感激,谢谢。我想提醒你,我的开发环境是W7,不是linux,不支持shell
***************************************************<****
---问题已经改变----
现在,我不仅想控制我的日志打印,而且如果我执行一个不包括安全参数的url,它还会将参数替换为*symbol,例如:
http://localhost/meeting/op.do,
进入。日志必须记录它,但是如果我输入一个包含安全参数的url,比如
http://localhost/meeting/import.php?cmd=admin&password=pass&userName=hsh&meetingID=123,
那么正则表达式替换必须起作用,它将解决:
http://localhost/meeting/import.php?cmd=****&password=****&userName=****&meetingID=****,
在日志中,我应该实现什么?提醒:我的开发环境是W7。谢谢
# 1 楼答案
将应用程序更改为使用POST请求来处理任何需要密码的事情,这难道不是一个更简单的解决方案吗?这正是为什么不应该对不希望记录的任何内容使用GET请求的原因