Php 用户数据数据库结构

Php 用户数据数据库结构,php,mysql,user-accounts,user-data,Php,Mysql,User Accounts,User Data,我正在运行一个带有一些用户帐户的基本网站(没有cookies,php会话系统)。 我想存储一些由用户生成的数据,这些数据只对他们自己可见 目前,我将所有用户的数据存储在一个表中,并使用一个额外的列进行标识(这是来自php会话用户id的输入)。(我们讨论的是每个用户最多50-100个密钥) 对于数据请求,我在mysql查询中有一个额外的参数(并且“user id”=x) 这是一种安全的(网站上没有敏感数据,但帐户必须是私有的)数据存储方式吗 有没有更好的方法来处理这个问题?(我读过关于独立数据库等

我正在运行一个带有一些用户帐户的基本网站(没有cookies,php会话系统)。 我想存储一些由用户生成的数据,这些数据只对他们自己可见

目前,我将所有用户的数据存储在一个表中,并使用一个额外的列进行标识(这是来自php会话用户id的输入)。(我们讨论的是每个用户最多50-100个密钥)

对于数据请求,我在mysql查询中有一个额外的参数(并且“user id”=x)

  • 这是一种安全的(网站上没有敏感数据,但帐户必须是私有的)数据存储方式吗

  • 有没有更好的方法来处理这个问题?(我读过关于独立数据库等的文章)如果是,怎么做

  • thx


    M.

    只需使用PHP
    $SESSION

    通过使用,您可以定义自己的会话存储方法,例如MySQL数据库


    用户不能直接更改会话中的值(与cookie一样)。因此,只要不在任何地方公开
    PHPSESSID
    cookie值,这种方法是完全安全的。

    没有任何方法是100%安全的。你的方法听起来很不安全,但我看不到你的代码。如果您正在正确地清理输入以避免mysql注入,并且用户也无法指定另一个用户的密钥,那么您就可以了

    这是否安全(网站上没有敏感数据,但 帐户必须是私有的)存储数据的方式

    在mysql查询中使用
    user id=x
    从表中获取数据没有错。但是,请确保在没有进行适当的清理和清理的情况下,不会直接从查询字符串读取此值并附加到mysql查询否则,您将成为一名受害者。

    有没有更好的方法来处理这个问题?(我读过关于独立数据库的文章 如果是,如何进行

    我看不出有任何理由使用单独的数据库来处理这个问题。您可以使用当前数据库。如果需要,您可以为此创建其他表。我不确定您的db模式和实体关系是什么。所以我不能告诉你怎么做。查看您的表并确保其正常化

    如果希望存储的数据仅由该特定用户查看,则可能需要检查当前登录的用户id(从会话变量获取?)是否与db记录的用户id相同。如果有“CreatedById”字段值,则可以将其与该字段值进行比较

    如果“SQL注入”对您来说是一个新术语,我相信这个链接是必读的。

    只要您使用转义数据/PDO等,您就应该很好。出于好奇,你的确切疑问是什么。。为什么不直接使用“从表中选择数据,其中user_id=”。intval($x)。"";? 编辑,你也可以散列用户id等,确保它没有被篡改,但如果我不清楚的话,这似乎有点过分,但这正是我现在做事的方式。:-)Thx提示,我清理登录等,但我还没有想到这个漏洞。我还没有读过这篇文章,但是看起来很多重要的信息都被捆绑在里面了,谢谢