5

I like to create a secure URL for a user for his entries (delete and edit links).

for ex, this is my actual URL

http://localhost/project/blogs/delete/1/test-title

what i want to do is,

http://localhost/project/blogs/delete/4324143563443/test-title (some hash made of salt+user auth id)

My main purpose is to create a secure hash along with the URL for delete and edit method. Is there any custom method's available? I searched in CakePHP Security functions http://book.cakephp.org/2.0/en/core-utility-libraries/security.html and not sure whether its the right way to do it or not sure which algorith to use)

4

2 に答える 2

7

まず、あなたがこれを行う方法/理由についてはよくわかりませんが、URL を隠すことでこれらのリンクを「保護」したいようです。これは「あいまいさによるセキュリティ」として知られており、一般的に嫌われています。

Cake (およびほとんどのアプリ) では、これを実現する通常の方法は、ユーザーがログインできるようにすることです (認証コンポーネントを参照)。次に、たとえば、削除アクション (つまり、URL /delete/1 の場合) でリクエストがチェックされます。ユーザー セッションが有効であること、およびユーザーが削除するのに十分なアクセス許可を持っていること。

そうしないことを強くお勧めしますが、これらのあいまいな URL を作成したい場合は、おそらくSecurity::hash();を使用する必要があります。. これに関する問題は、id をハッシュして、ハッシュから直接 id を決定することができないことです (これが要点です!)。代わりに、ハッシュをデータベースに保存してから、ハッシュをクエリする必要があります (各投稿には、ID またはランダム データから生成された一意のハッシュを含めることができます)。

于 2012-12-30T13:38:13.860 に答える
3

すでに述べたように、「あいまいさによるセキュリティ」はあまりスマートではありません。それにもかかわらず、あなたが望むものを達成する最も簡単な方法は、数値の自動インクリメントの代わりに、テーブルの主キーに UUID を使用することです。

于 2012-12-30T14:00:27.957 に答える