以重写方式实现的健康与美丽

在我管理的网站上,几乎每个页面都通过 FastCGI 脚本准备好交付。我依赖于一个多用途脚本,它执行各种截然不同的功能。为了确定哪个模块将处理给定请求的工作,需要向脚本传递相当多的变量。

如果这种结构对您有吸引力,您可以考虑使用 Apache 1.2 新增的 Rewrite 模块。至少有三个原因促使我这样做:

美观:与其强迫访问者盯着像 http://www.yoursite.com/fastcgi-bin/script.pl?arg1+arg2+argn/ 这样的 URL,他们可以使用像 http://www.yoursite.com/arg1/arg2/argn 这样的 URL。mod_rewrite 会将请求视为正则表达式;您将能够匹配 URL 的各个部分并使用$1, $2等等,在幕后形成“真实的”且非常丑陋的请求。

安全:混淆不是安全的终极目标,但这是一个不错的起点。如果您成功地将脚本隐藏在一系列重写规则之后,访问者将不知道他们正在访问脚本。他们也不会知道它的名称或请求的结构,因此他们不太可能直接对其发起攻击,寻找漏洞。

灵活性:假设您开始时有一个脚本处理各种任务。随着时间的推移,您决定将这些任务分配到不同的脚本(甚至服务器)中。如果访问者直接访问您的第一个脚本,那么当您启动第二个脚本时,您可能会使已发布的链接失效。另一方面,如果他们一直在使用您使用 mod_rewrite 解析的 URL,您可以在幕后添加所有额外的功能,而无需更改已发布的地址。

© . All rights reserved.