sql >> Databáze >  >> RDS >> Mysql

Skrytí skutečného ID databázového objektu v adresách URL

Tato otázka byla často kladena, s různou volbou slov (což znesnadňuje říci:"Jen to hledej!"). Tato skutečnost podnítila blogový příspěvek s názvem The Komplexní průvodce šifrováním parametrů URL v PHP .

Co zde lidé chtějí dělat

Co by lidé měli dělat místo toho

Vysvětlení

Lidé obvykle chtějí krátké náhodně vypadající adresy URL. To vám neumožňuje zašifrovat a následně ověřit ID záznamu databáze, který chcete zatemnit. To by vyžadovalo minimální délku adresy URL 32 bajtů (pro HMAC-SHA256), což je 44 znaků při kódování v base64.

Jednodušší strategií je vygenerovat náhodný řetězec (viz random_compat pro implementaci PHP5 random_bytes() a random_int() pro generování těchto řetězců) a místo toho odkazujte na tento sloupec.

Také hashidy jsou rozbité jednoduchou kryptoanalýzou. Jejich závěr uvádí:

Útok, který jsem popsal, je výrazně lepší než útok hrubou silou, takže z kryptografického hlediska je algoritmus považován za prolomený, je docela snadné získat sůl; umožňuje útočníkovi spustit kódování v obou směrech a zneplatní vlastnost 2 pro ideální hashovací funkci.

Nespoléhejte na to.



  1. Chyba syntaxe u uživatele nebo v jeho blízkosti při přidávání omezení Postgres

  2. TSQL md5 hash se liší od C# .NET md5

  3. Jak nainstalovat MySQL na Windows

  4. Co je @@TEXTSIZE na serveru SQL?