我有几个关于使用PHP的安全性的问题,我不想使用会话,所以我使用POST来验证用户的页面,所以: -
1)如果我有一个使用method ='POST'的注册表单,显然我需要在发送数据时过滤掉数据,以检查数据是否有效,我还需要在该页面上使用SSL(https)。现在只是注册表格非常小,即名称,电子邮件,密码将过滤检查和https足够安全只是为这个阶段。我还在注册表上有一个验证码以避免垃圾邮件。
2)在隐藏的POST字段中发送像userid值这样的数据(即123456)是否可以,这样我就可以确定数据库中正在发送数据的用户,以避免使用会话等。可能发送电子邮件地址为好吧,但没有像密码或非常敏感的信息。我显然会检查格式是否适合使用正则表达式的用户ID,即如果它的x位数,如果发布电子邮件地址则相同。 我发送用户ID值和电子邮件地址的原因是当用户在注册/登录后发布表单中的数据后,他们可以填写表单,我添加一些隐藏字段和表单,通过使用电子邮件添加和用户来识别用户id隐藏值发布,他们都必须在mysql查询中正确否则出错信息,所以即使被篡改黑客也要猜对了用户ID到电子邮件添加。 此外,如果页面有ssl,这将是正常的。
希望这有道理吗? 感谢
答案 0 :(得分:7)
根据定义,这是不安全的,劫持会话就像更改隐藏表单的值一样简单。如果您知道另一个用户的UserId,将其更改为该值将使您的应用程序认为该用户已登录。
我不确定你不使用会话的原因是什么,你一定要重新考虑。