我正在为学校的学生建立一个网站,该网站必须包含一个计划页面,该计划页面将显示一个日历,其中包含来自各种教师日历的供稿所填充的事件。在尝试了各种用于显示日历的脚本和工具之后,我终于找到了一种非常粗暴,破解的方式来做这件事,我想知道我的实现是否有任何特定的错误。
此日历中的我的要求发布在之前的question 这就是我的实施方式:
教师在自己的日历程序中制作日程表,并以iCal格式提供这些日程表。学校的常用Google帐户会记录所有这些日历,因此只能读取学校中所有教师的日程安排。 Google日历有一项功能,可让您选择一些日历,然后获取嵌入您网站的iframe的html代码,以便网站访问者可以查看即将发生的事件。当我在Google“配置器”中尝试选项时,我发现通过简单地在URL中包含某些代码来调用iframe内容,您可以更改哪些日历可见。这些代码或日历ID会清楚地显示在每个日历的设置中。因此,我的最终解决方案是:
对于每个学生,都有一个记录,说明他已经采取了哪些课程,因此他应该展示哪些日历。通过一些SQL魔术,我可以从预先准备好的所有日历ID数据库中检索日历ID,然后使用php为iframe生成正确的URL,并显示它。
我希望理解起来并不太复杂。现在任何人都可以告诉我是否存在任何固有的安全漏洞或糟糕的编程实践等。关于动态生成网址的全部想法,使用iframe,使用常见的Google帐户等只是尖叫'错误!'。有人能告诉我这是否可行,或者是否有问题?
答案 0 :(得分:1)
实际上,我认为您的解决方案有可能非常安全。使用单个Google帐户将只读日历收集到一个位置只是一个组织快捷方式。只要日历本身是只读的,您的单个帐户就不包含任何尚未公开的内容。
生成URL是完全合理的,只要您组合预先清理过的字符串即可。由于您的数据库只能从汇总Google帐户中获取日历ID,因此您知道潜在的恶意用户不会导致任意字符最终出现在您的综合网址中。
您可能遇到的最大问题是Google嵌入式日历iframe最多只允许十个日历Feed。
您将面临的最可能的安全漏洞是所有教师的Google日历的安全性。
默认情况下,Google日历接受“邀请”并将其作为事件发布。您可能会发现任何人都可以“邀请”教师的日历来恶作剧,然后那些恶作剧事件就会显示在学生日历上。