繁体   English   中英

通过表单发送ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM