编程语言
首页 > 编程语言> > PHP-如何确保icalendar(.ics)订阅?

PHP-如何确保icalendar(.ics)订阅?

作者:互联网

我有一个多用户网站,希望为每个用户发布一个单独的icalendar订阅文件(.ics).

我们的apache服务器配置为仅通过https提供访问.

我考虑过的一种方法是,当用户首次要求其订阅URL时,生成一个长随机随机密钥并将其包含在URL中.然后,该密钥的哈希将存储在数据库中.例如:https://site.com/calendar/user_id/dQXeCgtiOmZ5lAXoedmujiuA47VmCgA5OIfE6vZ8BhJT3Rxh20b9Ci.ics

cakephp应用程序中的所有页面均要求用户登录(显然,期望登录页面).我将ics文件配置为也不要求用户登录,而仅在提供正确的密钥(针对哈希进行测试)时显示.

这种方法有什么缺点吗?

我应该使用其他方法吗?

我已经看到了一些在订阅URL中包括基本身份验证的人的例子,但这听起来会更糟.示例:https://user:password@site.com/calendar/user_id

这是在学校环境中部署的,因此iCalendar订阅包含相当普通的内容,例如上课时间表和作业的到期日,但我仍然希望保持其安全性.

解决方法:

向网址添加未过期的机密的缺点是它们可能“泄漏”到其他系统.读取iCalendar提要的任何内容都不会真正认为提要URL本身是非常敏感的,并且这些URL可能存储在其他应用程序可以读取的系统部分中.

iCalendar提要可能会被缓存,因此该提要的缓存副本的秘密可能存在于本地浏览器缓存,公司网络缓存和其他中介中.

当用户第一次单击类似的URL时,浏览器工具栏可能会记录该请求并将其发送到外部服务.

那只是几个向量.使用基本身份验证并不更糟,只是不要将其嵌入到url中,并且要求用户再次输入密码.

不过,我无法为您确定这是否是可以接受的风险.我们确实将秘密网址用于某些内容.

标签:apache,cakephp,icalendar,php
来源: https://codeday.me/bug/20191121/2053726.html