使用$ _GET

时间:2013-01-01 01:51:59

标签: php mysql security pdo get

您好,首先是从美国到世界各地的新年快乐。我今天在$ _GET上做了很多阅读,确切地说它是什么以及在我的系统中实现它有多大用处。

要明白:

我有一个跟踪学生的系统。然后,所述系统将能够允许大学的辅导员专门与学生一起工作,在辅导员为学生完成的工作中添加评论。 - >现在我的意思是,如果辅导员接受学生创建会话(不是php会话,而是学生和工作人员之间的实际会话“辅导员”)

我的特定系统需要从网址获取meeting_id。所以url会这样:localhost / student.php?id = 1或2或3或4(依此类推)

根据我对$ _GET的理解: 我可以使用特定的url id(例如:localhost / student.php?id = 1)并使用$ _GET ['id']来更新数据库表中的特定行。

我的问题是:

我对$ _GET的理解合法吗?我将使用会话,我将在我的系统的所有页面(或内联网,如果你想称之为)上启用SSL。我将使用PDO来更新/写入/选择我的数据库表。我想知道这是否是实现$ _GET的正确方法,以及它是否是一种安全的方式。

Reading these answers / comments make me hesitant to go on with this logic.但是对于$ _GET的这种特定用法,实现这种逻辑是不错的做法?

3 个答案:

答案 0 :(得分:3)

$ _GET方法和其他方法一样安全。这是你用它做的事情,使它不安全。在数据库查询中使用它之前,请确保以某种方式验证$ _Get。例如,如果您知道id将是一个整数,并且您知道最大长度是多少,请在使用之前检查这些内容。

答案 1 :(得分:2)

  

使用$ _GET ['id']更新数据库表中的特定行。

从未想要使用$ _GET对数据库进行任何更改,只选择。 $ _GET可以加入书签并无意中再次使用。

这样想。如果你想能够为某些顾问添加书签,那么$ _GET就是完美的。

如果要对数据库进行更改,则要使用$ _POST。当然,您仍然无法信任用户,您需要确保它们已经过身份验证,并且您需要清理任何传入的数据。如果您使用的是PDO,请确保在查询语句中绑定数据

答案 2 :(得分:1)

当使用$ _GET方法时,传递的变量将在url中可见。因为你正在构建一个包含重要数据的站点,所以最好使用$ _POST以便使用可变名称&值不可见。还要彻底验证所有用户输入字段。