安全的html表单变量
Secure html form variable
我不希望我的用户能够使用inspect元素更改('+res.id+')和('+res.level'),因为如果他们这样做,它会改变提交按钮的结果。
例如'+res。Id + is = 2, 2等于火龙,但如果这个人使用inspect元素,他们可以将2改为1,1等于闪电龙。然后当他们点击战斗时,火龙变成了闪电龙。基本上他们可以与任何人/任何他们想要的战斗。
是否有办法防止人们改变这些变量或检查变量是否被改变,以便我可以向用户发送错误消息?
html += '<form name="input" action="ingame.php?page=attack/travel/startbattle" enctype="multipart/form-data" method="post">';
html += '<input type="hidden" id="goid" name="goid" value="'+res.id+'">';
html += '<input type="hidden" id="level" name="level" value="'+res.level+'">';
html += ' <input type="submit" value="Battle!" class="button"/>';
html += '</form>';
如果你想存储你可以信任的变量,那么不要将它们发送到客户端,而是将它们仅保存在服务器内存中(使用Session状态,数据库或其他一些在请求之间持续存在的后台存储)。
如果您需要与客户端共享值,那么将它们发送出去,但不接受它们作为用户的输入。
作为第三种选择,如果您有一个完全无状态的服务器,并且需要向客户端公开值,那么您可以加密和/或签名这些值,以便当它们从客户端返回时,您可以验证它们没有被篡改。使用消息身份验证码就是这种方法的一种实现:http://en.wikipedia.org/wiki/Message_authentication_code
您无法阻止用户向表单端点提交他们喜欢的任何参数。即使您可以阻止表单值被更改,有人也可以使用curl
或类似的方式向服务器发送定制的请求。
需要对输入值进行服务器端验证。您可能需要存储一个可以在提交表单时检索的中间对象,这样您就不必将这些值作为隐藏字段携带。
相关文章:
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 传递给 PHP 表单时 JavaScript 动态变量上的未定义索引
- 填写表单后替换两个变量
- 如何从html页面中的表单获取值's变量
- 如何从AngularJS表单输入中生成一个永久变量
- 如何将HTML表单(JSON格式)中的数据分配给变量
- 带有两个变量函数的Ajax提交表单
- 如何在没有表单提交、没有js、没有jquery和没有ajax的情况下将输入的文本框值存储到php变量中
- 如何从表单变量对象中获取特定的from属性
- 在具有动态值的函数上使用的变量不允许我通过 ajax 发送表单
- 如何在运行总计计算器时返回表单输入并更新 JavaScript 变量
- 在 iframe 中指定全局变量名称时,表单目标会中断
- 提交时将JavaScript变量转换为PHP表单
- HtmlService GAS在html表单之间传递变量
- 通过ajax将变量从html表单发送到php函数的正确方法
- 如何将php变量放入HTML表单中
- 通过表单(get)传递javascript变量
- 用于提交基于多个变量重定向的表单的JavaScript
- 我需要在表单提交后显示一条包含变量(表单中的答案)的消息
- Javascript HTML变量表单入口