ID などのパラメーターを URL で送信するサイトを開発しています。パラメータをエンコードするために urlencode と base64encode を使用しました。
私の問題は、ユーザーやハッカーが URL パラメーターで遊ぶのを防ぐ方法、またはパラメーター値がデータベースに存在する場合にのみアクセスを許可する方法です。
URLに少なくとも2つ、最大で5つのパラメーターがあるため、すべてのパラメーターがすべてのページのデータベースに存在することを確認できますか?
ありがとう
ユーザーが で遊ぶのを止めることはできませんQueryString
。
それらを使用して何かを行う前に、スクリプトでのみ検証できます。
これは、POST された変数にも当てはまり、ほとんど簡単にハッキングされる可能性があります。
だから、検証、検証、検証。
一般に、内部データに関心がある場合は、それらをセッション変数に入れます。しかし、そこにあるものはすべて悪であることを常に覚えておいてください。入力に SQL インジェクションが含まれているかどうかを常に確認する必要があります。
セッション Cookie を使用する場合は、HTTP のみであることを確認してください。そのため、JavaScript でセッション Cookie をコピーすることはできません。また、可能であれば、それらを URL 自体に含めないでください。URL をコピーして既存のセッションをハイジャックするのは簡単です。
これは、パラメータを何に使用しているかによって少し異なります。それらが非公開であり、他のユーザーがアクセスできないようにする場合は、データを特定のユーザーにリンクし、正しいユーザーとして認証されていないすべてのユーザーのアクセスを拒否する必要があります。
また、URL パラメーターを含むユーザー入力を常にサニタイズすることを忘れないでください。ユーザー入力をデータベースに渡すときに準備済みステートメントを使用し、それをエンコードしてから他のユーザーに提供します。