[英]Sending the id via form
我创建了一个论坛,人们可以在这里发送问题并获得答案。 这样,当用户以我创建的形式回答问题时,我将问题的ID发送到另一个php文件,以将答案存储到正确的位置,如下所示。
<input type="text" value="<?php echo $id_of_question;?>" style="display:none;"/>
但是我认为这样做不是更安全的方法,否则应该有更好的方法。 所以,我的问题是我的方法是好的还是安全的? 我该如何做得更好? 我认为我在上面所做的是偷懒的方式:)谢谢
它没有任何问题,但是可以使用hidden
代替:
<input type="hidden" name="question_id" value="<?php echo $id_of_question;?>" />
input type="hidden"
更有意义,但是就安全性而言,这没有实际区别。
尽管用户可以更改字段的值,但是您只需要确保提交的值是合理的即可。
即,从最基本的层面上讲,这是一个存在的问题。
如果您有更复杂的要求(例如,某些问题可能已经关闭并且不接受新的答案),那么您需要更改该问题也已打开。
无法强制浏览器提交特定值。 您必须在服务器上强制执行所有安全措施。
只要您在另一侧检查值,就不会有安全问题。 我至少要检查一下值是否是另一面的int,例如is_int($_GET['id'])
,您可以进一步检查它是否是有效的ID,但这会很昂贵为您的数据库。
确实不是问题的原因在于,无论如何ID都有99%的可能出现在您的URL中,所以这不像您泄露任何秘密。
不是text
而是hidden
:
<input type="hidden" value="<?php echo $id_of_question;?>" />
好吧,我认为使用隐藏属性而不是CSS更好。
<input type="hidden" value="<?php echo $id_of_question;?>" />
我已经在我的网站上使用了很长时间。 但是,可能会有更好的方法。
你也可以用这个
<form name="form" action="formSubmitUrl.php?id=<?php echo $id ;?>">
<input type="hidden" name="id" value="<?php echo $id;" />
</form>
您可以检查帖子并获取表格的价值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.