根据Apache bugtracker的说法,B标志在版本2.2.9中得到修复 https://issues.apache.org/bugzilla/show_bug.cgi?id=45529
使用此B标志有多安全?如果我将它包含在我们软件的下一个版本中,我可以放心,大多数托管都可以正常使用吗?
答案 0 :(得分:0)
评估RewriteRule时,URL未转义,即转义序列%XX
X
是十六进制字符,转换为实际字符。
B
确保在重写的网址中,反向引用都会被转义,无论是最初转义还是不转义。这在查询字符串中特别重要,它允许数据中的字符少于URL的路径部分(除了?
)。
在这个bug中,B
无法转义某些字符,即它表现得好像没有指定B
标志。因此,虽然B
标志是错误的事实是一个问题,但它并不比不使用它更糟糕。
您可以解决它通过PATH_INFO而不是查询字符串传递脚本数据的问题,但这需要对脚本进行更改。