有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

然后进入。日志不应该记录它,我应该去实现什么

我尝试了一种方法,将日志变量设置为关于setenifCustomLog,但它不起作用:

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) 个答案

  1. # 1 楼答案

    将应用程序更改为使用POST请求来处理任何需要密码的事情,这难道不是一个更简单的解决方案吗?这正是为什么不应该对不希望记录的任何内容使用GET请求的原因