Php 只有登录到CMS[SilverStripe]时才允许访问文件
当用户通过本网站创建预订时,将生成发票pdf并保存在资产/发票中。只有工作人员才能访问这些文件以下载并通过电子邮件发送给客户。然而,目前,如果某人知道确切的URL,无论是否登录,他们都可以访问该URL。我正试图限制那些只登录到CMS的人访问这些文件。有没有办法通过一些权限模块实现这一点 您的模块在以下情况下是否具有安全资产:Php 只有登录到CMS[SilverStripe]时才允许访问文件,php,silverstripe,Php,Silverstripe,当用户通过本网站创建预订时,将生成发票pdf并保存在资产/发票中。只有工作人员才能访问这些文件以下载并通过电子邮件发送给客户。然而,目前,如果某人知道确切的URL,无论是否登录,他们都可以访问该URL。我正试图限制那些只登录到CMS的人访问这些文件。有没有办法通过一些权限模块实现这一点 您的模块在以下情况下是否具有安全资产: 有了它,您可以为镜像sitetree页面访问限制的文件/文件夹设置权限。当我试图通过模块实现这一点时,我没有得到任何结果。我所做的就是在资产目录中添加一个私有文件夹,将我所
有了它,您可以为镜像sitetree页面访问限制的文件/文件夹设置权限。当我试图通过模块实现这一点时,我没有得到任何结果。我所做的就是在资产目录中添加一个私有文件夹,将我所有的安全文件都放在这个文件夹中。我在私有文件夹中添加了一个htaccess文件,其中包含:
<IfModule mod_rewrite.c>
SetEnv HTTP_MOD_REWRITE On
RewriteEngine On
RewriteBase /
RewriteEngine On
RewriteCond %{HTTP_COOKIE} !cookie_name=cookie_value; [NC]
RewriteRule ^ /page-not-found [NC,L]
此代码检查特定的cookie名称和特定的cookie值,如果不满足此条件,则会将用户重定向到未找到的页面url
在CMS中预订系统的扩展内,我设置了cookie。然后在登录CMS时设置此cookie,如果用户没有此cookie,他们将无法查看/assets/private目录中的任何文件/文件夹。我在前一段时间制作了一个模块来执行此操作
您可以尝试使用它,也可以使用它编写自己的代码。您可以向我们展示您迄今为止的尝试吗?我已经删除了代码,但我可以解释。我试图通过htaccess文件限制对IP地址的访问,认为CMS中的人可以获得服务器IP,但是他们没有,并且返回了个人IP,所以这个选项不起作用。这就是我迄今为止所尝试的,我在网上四处寻找解决方案,但我似乎找不到有同样问题的人。有一个旧版本和一个重写版本。新版本应该可以与SSTR~3.1和Apache配合使用。