php – 输入隐藏字段的表单如何保护它
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 输入隐藏字段的表单如何保护它,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1750字,纯文字阅读大概需要3分钟。
内容图文
![php – 输入隐藏字段的表单如何保护它](/upload/InfoBanner/zyjiaocheng/793/1c5c835aea734c7ab18fc72b0efde188.jpg)
在我知道如何保护上传图像Bypassing forms input fields to upload unwanted files后,我想提供另一个来自2提交的例子,其中一个是隐藏的.
SQL表(id,name,jod,number)
CREATE TABLE `users` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`name` varchar(255) default '0',
`job` varchar(255) default NULL,
`number` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
表格代码(支持会员将编辑自己的信息)
<form action="send.php" method="post" name="send" id="send">
<input type="text" name="name" id="name" value="John"/>
<input type="text" name="job" id="job" value="Plumber"/>
<input type=hidden name="number" id="number" value="1234"/>
<input type="Submit" name="Submit" value="Submit"/>
</form>
后来有一个Firefox扩展,可以绕过不同的输入到服务器端绕过检查,并可能因此这里区分大量的伤害可以停止的全过程,使你能够隐藏表格序号的值修改任何如价值=“1”导致成员的更新信息具有该值1.
该扩展程序如下工作,它可以在传输到服务器端之前伪造输入数据.
PHP代码Send.php
if(isset($_POST['send'])){
$name = mysql_real_escape_string($_POST[name]);
$job = mysql_real_escape_string($_POST[job]);
$number = mysql_real_escape_string($_POST[number]);
$sql= "update users SET name='$name',job='$job' WHERE number='$number'";
mysql_query($sql) or die("query failed: $sql".mysql_error());
echo "Update Done";
} else {
echo "Nothing to update";
}
这个问题
然后如何从这种输入形式保护这个简单的形式? ?谢谢
这个问题真的很痛,因为它让我的网站免费被黑了:)
解决方法:
如果用户授权不是您的原因中的选项,您可以尝试以下技术:
>使用包含其他信息的数字哈希值设置隐藏字段
>使用加密的数字设置隐藏字段(可能的盐也可以提高安全性)
当然,在发送表单HTML和验证帖子信息时会增加额外的步骤,但至少攻击者在帖子上伪造有效号码会更加困难.虽然如果攻击者知道不同用户的加密/哈希值,除非明智地使用带有隐藏字段的盐渍信息,否则它将无法保存.
内容总结
以上是互联网集市为您收集整理的php – 输入隐藏字段的表单如何保护它全部内容,希望文章能够帮你解决php – 输入隐藏字段的表单如何保护它所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。