Content management system 如何生成一次性使用链接?有CMS或框架解决方案吗?
我正在为一家作家管理公司制作一个网站。他们每天都会收到来自潜在作者的大量剧本投稿,而且往往是不请自来的。新网站将允许潜在的作者提交他或她的想法的简短日志/样本。这个想法会被发送到管理组的电子邮件帐户。如果管理团队喜欢他们看到的内容,他们希望能够从电子邮件中批准该提交,并向提交者发送一个独特的链接以上载其完整脚本。此链接要么只能工作一次,要么只能工作一段时间,以便只有预期的收件人才能使用它 那么,有人能告诉我某种(我是PHP+mySQL)CMS或框架可以实现这一点吗?我已经搜索了很多,但我似乎找不出正确的方式来表达这个查询到搜索引擎 我有适度的编程经验,但除了一些简单的Wordpress黑客之外,我对PHP的使用不多Content management system 如何生成一次性使用链接?有CMS或框架解决方案吗?,content-management-system,hyperlink,Content Management System,Hyperlink,我正在为一家作家管理公司制作一个网站。他们每天都会收到来自潜在作者的大量剧本投稿,而且往往是不请自来的。新网站将允许潜在的作者提交他或她的想法的简短日志/样本。这个想法会被发送到管理组的电子邮件帐户。如果管理团队喜欢他们看到的内容,他们希望能够从电子邮件中批准该提交,并向提交者发送一个独特的链接以上载其完整脚本。此链接要么只能工作一次,要么只能工作一段时间,以便只有预期的收件人才能使用它 那么,有人能告诉我某种(我是PHP+mySQL)CMS或框架可以实现这一点吗?我已经搜索了很多,但我似乎找不
谢谢 我将为您提供构建这样一个系统的简单方法的一般指南 我假设作者以某种方式注册到系统中,并且他/她的个人资料包含有效的邮件地址 因此,当他提交样本时,您将在“sample”表上创建一个条目。然后,您可以将示例和链接发送给经理。此链接将指向一个脚本,该脚本将示例的数据库“id”作为参数(此脚本应验证manager是否已登录——如果未登录,则显示登录屏幕,并在成功登录后将其重定向回) 然后,该脚本将了解经理允许作者提交其作品的意图。现在乐趣开始了 有许多可能性:
key = hash(concat(userId, ";", authDate, ";", seed));
这里的hash()是我们称之为“单向函数”,如MD5、SHA1等。然后concat()只是一个字符串连接函数。最后,seed是一种类似于“主密码”的东西,完全是随机的,不会改变(因为如果你改变它,所有发布的链接都会停止工作),只是为了提高安全性——比方说,黑客正确地猜测你在使用MD5(这很容易)他试图通过散列用户名和日期的一些组合来攻击你的系统
此外,为了使请求有效,它必须在正确的时间范围内
因此,如果两个密钥都有效,并且日期在时间范围内,则可以接受上载
需要注意的几点:
- 这是一个非常简单的系统,但可能正是您所需要的
- 对于散列函数,应该避免使用MD5,而是使用类似SHA1的函数
- 对于发送给编写器的链接,您可以“混淆”参数名,即,将“key”称为“k”,将“authDate”称为“d”
- 对于日期,您可以选择另一种更“神秘”的格式,如unix时代
- 最后,您可以使用“base64”之类的代码对参数进行编码(或者简单地应用一些字符替换函数,例如rot13,但也考虑了数字),只是为了使它们更难猜测
- 为了完整起见,在验证脚本中,您还可以检查编写者是否已经在时间范围内发送了文件,从而使其无法在时间范围内发送许多文件
我希望这能有所帮助,而且已经足够清楚了。如果我有时间,我会在博客上写一个关于某种语言的工作示例。我会给你一个简单的方法来构建这样一个系统的一般指南 我假设作者以某种方式注册到系统中,并且他/她的个人资料包含有效的邮件地址 因此,当他提交样本时,您将在“sample”表上创建一个条目。然后,您可以将示例和链接发送给经理。此链接将指向一个脚本,该脚本将示例的数据库“id”作为参数(此脚本sho