我已经在线寻找答案,但似乎没有一个类似于我想要实现的目标。因此,我希望stackoverflow的大师可以帮助我。
我想要完成的是什么? 我想限制对未授权用户的内容访问。非授权用户的可访问内容将在白名单中指定。所有其他内容都列入黑名单。
我的环境是什么? 我正在运行Apache与非常类似于PHP的脚本语言。许多人都不知道脚本语言,但它是Fazzt(如果你知道并且能够推断它与PHP相比的差异......没有指针/内存管理,十进制值和二进制数据) 。由于项目的性质,我必须使用这种环境。
网站上发生了什么? 站点对用户进行身份验证并在会话中存储身份验证向未经身份验证的用户呈现样式(包含图像,css,js等)网页。因此,我需要将所有静态图像,css,js文件列入白名单,以便客户端浏览器可以下载它们。登录后,会显示更广泛的动态内容(因此,未列入白名单的任何内容都会自动列入黑名单。)
我是如何解决这个问题的? 这很愚蠢但我觉得显而易见并不总是这样。我的方法涉及mod_rewriting对与.fzt和.fsp页面不匹配的现有文件的所有请求。重写将转到脚本文件,该文件将根据白名单检查所请求的文件。如果文件存在于列表中,请求将直接路由到文件(是的,愚蠢的我...它会再次获得mod_rewritten> _<)。如果它不在列表中,则将检查用户的身份验证。如果未对用户进行身份验证,则将返回“未找到文件”HTTP。否则,请求将被重定向到文件并提供服务(同样愚蠢)。
正如您所看到的,这种方法存在很大缺陷。但是,我确信应该有可能实现某种性质......但是,我还没有找到任何证据。你怎么看? mod_rewrite / script是完全错误的执行此任务的方法吗?你会怎么做呢?请注意,我不能简单地将.htaccess作为由Fazzt跟踪的用户身份验证确定的访问权限(如上所述,脚本语言类似于PHP)。
非常感谢任何建议或想法!