Php 打印安全性(条形码?)

Php 打印安全性(条形码?),php,security,encryption,user-experience,Php,Security,Encryption,User Experience,我一直在思考这个安全问题,但不确定该怎么做。在我的网站上,人们可以打印出传单,然后把它们贴到某个地方(比如大学),然后在旁边拍下自己的照片。作为回报,他们将获得用户升级 以下是我想到的一些问题: 用户可以打印一张传单,在各种地方拍照 用户可以拍照,转弯,然后再拍照 人A贴了一张传单,人B过来声称是他们自己的 一些可能的解决办法: 打印时在传单上写下此人的用户名 让用户拿一张写有用户名和日期的纸 每周最多拍摄一张照片 在传单上打印条形码、字母数字代码或其他内容 我对这个问题的主要关注点是最

我一直在思考这个安全问题,但不确定该怎么做。在我的网站上,人们可以打印出传单,然后把它们贴到某个地方(比如大学),然后在旁边拍下自己的照片。作为回报,他们将获得用户升级

以下是我想到的一些问题:

  • 用户可以打印一张传单,在各种地方拍照
  • 用户可以拍照,转弯,然后再拍照
  • 人A贴了一张传单,人B过来声称是他们自己的
一些可能的解决办法:

  • 打印时在传单上写下此人的用户名
  • 让用户拿一张写有用户名和日期的纸
  • 每周最多拍摄一张照片
  • 在传单上打印条形码、字母数字代码或其他内容
我对这个问题的主要关注点是最后一个解决方案。我一直在考虑每次打印传单时随机储存一份盐

还有什么其他方法可以确保传单的安全?(我知道不可能完全保护它。)


编程问题:如何为每个传单生成随机代码?以后如何与我的系统进行验证?

使用用户名加上当前时间戳,然后对结果执行sha1()。这将为您提供一个非常独特的代码

比如说

$code = sha1($username. time());

使用用户名加上当前时间戳,然后对结果执行sha1()。这将为您提供一个非常独特的代码

比如说

$code = sha1($username. time());
  • 生成一个随机ID,类似于
    base64_encode(uniqid(“,TRUE))
  • 将其保存在与用户传单关联的数据库中
  • 在传单上包含唯一ID
  • 当有人发布图片时,在数据库中查找以确保它是一个有效的ID
  • 将DB条目标记为“已赎回”,这样就不会有人再次使用它
  • 要意识到,无论你多么聪明,人们都会想出办法来欺骗你的系统
  • 生成一个随机ID,类似于
    base64_encode(uniqid(“,TRUE))
  • 将其保存在与用户传单关联的数据库中
  • 在传单上包含唯一ID
  • 当有人发布图片时,在数据库中查找以确保它是一个有效的ID
  • 将DB条目标记为“已赎回”,这样就不会有人再次使用它
  • 要意识到,无论你多么聪明,人们都会想出办法来欺骗你的系统

  • 目前,这不是一个编程问题,它太笼统了。请将您的问题归结为一个特定的编程问题。@OliCharlesworth我已经编辑了我的问题。这仍然不是一个真正的编程问题;例如,
    rand()
    有什么问题吗?可能。但是你应该完全重写你的问题,就像“我怎样才能在没有冲突的情况下生成随机数?”。@Flipper在一对数据点上发生冲突(用户名+随机数)?我真的很怀疑。目前,这不是一个编程问题,它太笼统了。请将您的问题归结为一个特定的编程问题。@OliCharlesworth我已经编辑了我的问题。这仍然不是一个真正的编程问题;例如,
    rand()
    有什么问题吗?可能。但是你应该完全重写你的问题,就像“我怎样才能在没有冲突的情况下生成随机数?”。@Flipper在一对数据点上发生冲突(用户名+随机数)?我真诚地怀疑它。+1击败我。这并不比用户名+时间戳的散列更独特。@oli,你是对的,数字部分实际上是无用的。+1击败我。这并不比用户名+时间戳的散列更独特。@oli,你是对的,数字部分实际上是无用的。