我正在关注用户/订阅管理软件,例如aMember Pro。这使用文件夹保护方法来阻止访问站点的区域。因此PHP脚本需要Apache(linux / unix)。
我的网络服务器是IIS windows 2003,我使用MySQL数据库来存储用户ID和订阅状态/访问权限。我们真的只有2种类型,免费/付费。当用户登录时,我将他们的用户ID存储在会话cookie中,并使用它来检查每个页面上的订阅状态,并确定他们可以在此页面上查看的内容(只有几页,它们都在同一个文件夹中网络服务器)。
每种方法的优缺点是什么?是我的饼干&数据库方法适当且足够安全?如果我不需要,我不想切换到Linux,并且aMember软件的所有其他方面在Windows上都能正常工作。
如果网站未使用数据库存储用户ID,则仅确实需要文件夹保护。我们在使用订阅管理软件之前完成了访问权限,所以我的预感是我们不需要使用文件夹保护,但我很想得到其他人的意见。
感谢
答案 0 :(得分:1)
您不必切换到Linux; Apache将在Windows上正常运行。如果您想坚持使用IIS,可以使用FastCGI启用PHP。
答案 1 :(得分:1)
您正在谈论的身份验证看起来像Apache中的基本HTTP身份验证,需要用户对每个请求进行身份验证。来自apache doc
客户端浏览器缓存用户名 和您提供的密码,和 将它与它一起存储 身份验证领域,如果其他的话 资源是从同一个请求的 领域,相同的用户名和密码 可以返回以验证该 要求无需用户 再次输入它们。
因此,基于会话的方法与文件夹保护略有不同,因为它是一个比一个请求更长的长期会话,它由PHP管理而不是网络服务器。
服务器端会话方法在几乎任何需要用户身份验证并且证明足够安全的页面中都很常见(即使它有漏洞)。在任何情况下,如果您担心安全性,您必须确保身份验证(通常传输普通密码)通过安全(SSL)连接运行。