【发布时间】:2015-11-07 06:05:52
【问题描述】:
我有许多产品类型的表格。每种类型都由一个 select 选项加载。
类似这样的:
<select name="name">
<option value="product_1"> product one </option>
<option value="product_2"> product two </option>
</select>
每种产品类型都有不同的输入。 当
select更改被触发时,一个ajax 请求引用inputs。
要在后端中进行数据验证,我必须使用option 值来了解提交的产品类型。
好吧,现在是漏洞:
- 用户选择并填写一些产品类型
- 用户故意将
option标签的当前值(在浏览器上)更改为另一个有效值 - 用户向服务器发送这些不一致的数据
显然,验证这一点并非不可能,但有点无聊。
为方便起见,我为每种产品类型添加了一个input[type=hidden],并带有一个“令牌”(哈希)作为value 属性。
其实“令牌”无非就是(变通方法)Hash::make( $selected_option_value )
现在,提交产品后,只需检查Hash::check( $selected_option_value, $selected_option_value_hash),如果为真,我对产品类型“确定”
当然这个变量名不是真实的
但要做到这一点,bcrypt (Hash::make()) 似乎不是一个好主意。
所以,我有一些问题:
如何从字符串生成令牌并检查为
password_hash和password_verify?或者有其他更好的方法来解决这个问题?
【问题讨论】:
-
您不能生成您拥有的产品列表并将所选值与该列表进行比较。如果不是这些类型之一,则抛出异常/错误消息?
标签: php jquery ajax laravel hash