PHP实例:避免重复提交和检查数据来路


PHP Token(令牌)设计

设计目标:

  1. 避免重复提交数据.
  2. 检查来路,是否是外部提交
  3. 匹配要执行的动作(如果有多个逻辑在同一个页面实现,比如新增,删除,修改放到一个PHP文件里操作)

这里所说的token是在页面显示的时候,写到FORM的一个隐藏表单项(type=hidden).
token不可明文,如果是明文,那就太危险了,所以要采用一定的加密方式.密文要可逆.俺算法很白痴,所以采用了网上一个现成的方法.

如何达到目的:

  1. 怎样避免重复提交?
    在SESSION里要存一个数组,这个数组存放以经成功提交的token.在后台处理时,先判断这个token是否在这个数组里,如果存在,说明是重复提交.
  2. 如何检查来路?
    可选项,这个token在生成的时候,加入了当前的session_id.如果别人copy你的html(token一迸copy),在提交时,理论上token里包含的session_id不等于当前session_id,就可以判断这次提交是外部提交.
  3. 如何匹配要执行的动作?
    在token的时候,要把这个token的动作名称写进这个token里,这样,在处理的时候,把这个动作解出来进行比较就行了.

我以前写的GToken不能达到上面所说的第二条,今天修改了一下,把功能2加上了.个人感觉还行.



相关阅读:
如何恢复Oracle数据库Redo故障
div+css网页布局中对段落进行排版的方法
PHP脚本数据库功能详解(上)
Linux操作系统如何设置RED5为系统服务
有趣的JavaScript数组长度问题代码说明
javascript 表格排序和表头浮动效果(扩展SortTable)
利用XMLHTTP传递参数在另一页面执行并刷新本页
用ASP和IIS设置目录安全
Oracle初始参数中三个关于License的设置
Cookie及其使用(一)
电脑出现NO BOOT 的解决教程
c#中实现文件拖放打开的方法
SQL Server2005打开数据表中的XML内容时报错的解决办法
DIV+CSS构成的树型菜单
快速导航

Copyright © 2016 phpStudy |