2

SQL を使用しない CMS サイトを持っています。すべてがファイルに書き込まれます。

login($login, $pass)ただし、単純な if-else ステートメントを使用して、ログイン フォームからの POST データをチェックする関数 ( ) があります。

if 
    login-data-from-file == POST['login'] 
and
    password-data-from-file == POST['pass'] 
then 
   "Log user in"

そのようなコードに挿入する方法があるのだろうか。どう思いますか?

4

3 に答える 3

5

おそらく文字列を比較しているだけなので、そうではありません。

ただし、SQL インジェクションの影響を受けないからといって、アプリが自動的に安全になるわけではありません。心配すべきクロスサイトスクリプティングセッション固定が常にあります (他の多くの攻撃ベクトルの中で最も一般的な攻撃ベクトルの 2 つだけです)。

于 2012-07-04T22:15:57.523 に答える
1

eval やその他の黒魔術を使用していない場合、PHP コードに直接注入することはできません。ユーザーとパスワードをプレーンテキストでファイルに保存することはあまり安全ではありませんが。それでもやりたい場合は、それを確認する必要があります

  1. ユーザー名とパスワードを含むファイルは、一般にアクセス可能なフォルダー外の場所に保存されます
  2. パスワードはハッシュ化され、ソルト化されます (非常に重要です!)
  3. ユーザー名とパスワードを含むファイルにユーザーがアクセスできるコード内の場所はありません
于 2012-07-04T22:19:19.243 に答える
0

正しい if-else ステートメントを作成した場合、このコードに挿入する方法はないと思います。値 (%00)を送信することは可能NULLですが、何も変更しないでください。

于 2012-07-04T22:17:56.890 に答える