sql >> データベース >  >> RDS >> Mysql

URLで真のデータベースオブジェクトIDを非表示にする

    この質問は、さまざまな単語の選択で多くの質問が寄せられています(これにより、「検索するだけです!」と言うのが難しくなります)。この事実により、 The PHPでのURLパラメータ暗号化の包括的なガイド

    ここで人々がやりたいこと

    代わりに人々がすべきこと

    説明

    通常、人々は短いを望んでいます ランダムに見えるURL。これでは、暗号化してから認証する余地があまりありません 難読化するデータベースレコードID。そのためには、最小URL長が32バイト(HMAC-SHA256の場合)である必要があります。これは、base64でエンコードした場合は44文字です。

    より簡単な戦略は、ランダムな文字列を生成することです( random_compat を参照) random_bytes()のPHP5実装の場合 およびrandom_int() これらの文字列を生成するため)、代わりにその列を参照してください。

    また、ハッシュが壊れています 単純な暗号解読による。彼らの結論は次のように述べています:

    私が説明した攻撃はブルートフォース攻撃よりもはるかに優れているため、暗号化の観点からは、アルゴリズムが壊れていると見なされ、塩を回収するのは非常に簡単です。攻撃者がどちらの方向にもエンコーディングを実行できるようにし、理想的なハッシュ関数のプロパティ2を無効にします。

    それに頼らないでください。



    1. エラー1130(HY000):ホスト''はこのMySQLサーバーに接続できません

    2. Windows認証を使用してsqlalchemy経由でSQLServerに接続するにはどうすればよいですか?

    3. MySQLはステータスを表示します-アクティブまたは合計接続?

    4. CTEが複雑で強力なクエリの作成をどのように支援できるか:パフォーマンスの観点