|zyciis| 网页安全问题:如何防止用户用javascript来更改我的数据,第二贴,

Zyciis199 2009-08-26 05:38:58
比如我有一个修改新闻的页面如
<input type="hidden" id="txtID" name="txtID" value="1">
<input type="text" id="txtTitle" name="txtTitle" value="今天是情人节">
<input type="text" id="txtText" name="txtText" value="情人节快乐">
<input type="button" value="修改" onclick="update()">
------------------------
如上面是一条我要修改的记录,他的ID为“1”
当我进标题和内容修改后进行点击提交post到其他页面进行更新
(因为我要写没有ViewState的面面,所以没有用ViewState来保存主键)
但这个时候给客户端IE用javascript $("#txtID").val("2");
将我的ID换了,这样进行数据更新的时候就会更新掉我的记录2的数据

怎么办啊?


因为我以为是用ASP.NET做的,可以在后台定义ViewState来做存这个主键,
但现在我把ViewState关了,所以就用了个hidden来保存,但是hidden会被用户在浏览器地址栏中写js改掉

问一下PHP这种情况是怎么处理的,
谢谢
...全文
63 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
YHL27 2009-08-27
  • 打赏
  • 举报
回复
学习!!
yutao_7871 2009-08-26
  • 打赏
  • 举报
回复
顶顶
rex100 2009-08-26
  • 打赏
  • 举报
回复
session 或者 cookie 都可以。
foolbirdflyfirst 2009-08-26
  • 打赏
  • 举报
回复
....
你是问session?杀鸡牛刀..不过也不失为一种方法.
Zyciis199 2009-08-26
  • 打赏
  • 举报
回复
哈哈,我是问PHP是如何来保存那个主键的,谢谢
foolbirdflyfirst 2009-08-26
  • 打赏
  • 举报
回复
b/s结构就是这样的,http从server端最终返回到客户端浏览器的内容,就是客户端的东西了,服务器那边如何管得了客户端浏览器的东西不被修改呢?
或者你把那个id加密掉,这样可以增加点攻击难度.
Zyciis199 2009-08-26
  • 打赏
  • 举报
回复
RE:不要想有什么创建者的问题
我想的是如何来保证我这个主键不会被改

谢谢
foolbirdflyfirst 2009-08-26
  • 打赏
  • 举报
回复
这个为1的ID所对应的新闻记录

执行更新操作的这个用户
它们之间应该有某种关系,可以让你的后台程序进行判断.
比如新闻纪录的创建者才可以修改纪录,还可以加上权限判断等等.
这样的话后台可以有个判断
伪代码:

$sql = "select creator_id from `texts` where id='{$_POST['txtID']}' ";
$record_creator_user_id = $db->query($sql);
//检查是否是纪录的创建者
if($record_creator_user_id != $_SESSION['user_id'])
{
exit( "Acess Deny!");
}
//检查是否有更新权限.
elseif(!check_permission($_SESSION['user_id']))
{
exit("You have no permission~!");
}

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧