通过URL更改id来阻止用户获取数据

时间:2018-04-10 17:58:38

标签: php mysql

通过查询在页面上显示用户数据:

$query = "SELECT * FROM COLLECTIONS WHERE uid = $_GET['user_id']";

但问题是用户可以通过更改该uid来查看其他用户数据。 如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

让您的网站离线。 NOW。 有人要么擦除数据,要么窃取数据或注入向所有客户提供的恶意软件

呼吸。假设它还没有被破坏,你已经为自己买了一些时间。

您需要采取的一小部分安全措施

这些以“最大的直接利益”的顺序缓解“可能是最重要的”,每个都有一个问题。 (除了数字3之外,它可以减少4到32241个等于或大于1的问题。)

  1. 查看每个数据库请求的每个实例,并确保在定义查询字符串时从不使用双引号或.运算符。重建所有数据库处理代码以使用某种parametrised SQL query系统。
  2. 使用身份验证库,或至少加密库。
  3. 使用无法追溯到您网站的帐户,在Security Stack Exchange上询问您的设置。如果您的网站与贵公司相关联,甚至不是贵公司。
  4. 为什么?

    是的,我知道,该网站可能很重要,需要熬夜以便人们可以使用它。但试试这个:

    www.badwebsite.com/your/page/here?uid=1 OR 1
    

    所有数据都可见!您正在接受用户的代码并在数据库中运行它。现在如果我决定删除所有数据库表怎么办?

    这只是我提出的第一点。如果您还没有完成第2步,请相信您的用户会遇到更大的问题,其中最少的是其他网站上的数百个帐户(例如Gmail,示例银行)会被网络犯罪分子所知。

    看一下这个漫画:

    The server crashes if the user's password is a resolvable URL.

      

    URL请求库中还有一个unicode处理错误,我们将密码存储为未加密的...所以如果我们用表情符号加密它们,我们可以一次关闭三个问题!

    这是更有趣的,但这个漫画中描述的问题可能不那么糟糕比你面临的问题。请为了委托您提供数据的人,请将其关闭几天,同时尝试使其成为类似安全的东西。

    您可能想引进技术顾问;如果您的开发人员在创建防入侵软件方面没有经验,那么他们可能无法完成使不安全软件安全的任务(这种情况要难得多,特别是如果您不熟悉这种情况)。