-1

個人のCMSで4つの通信社サイトを開発しました。

今、私には問題があります。誰かが私のニュースとデータベースの他のレコードを削除できます。私は

sql私のテーブル名と長いテーブル名のプレフィックスのため、それが注入ではないことを確認してください。

とにかく、誰かがセッションを挿入してサイトの管理者側にログインする可能性はありますか?

4

2 に答える 2

4

多くのインジェクション手法は、テーブル名を知っていることに依存していません。あいまいですが単なるセキュリティであるという事実を除けば、最も簡単なのはOR 1=1インジェクショントリックであり、パスワードチェックWHEREが常にtrueを返すようにします(これはもちろん単純化です)

ご覧のとおり、テーブル名は必要ありません。このトリックを使用すると、人は誰でもログインできるため、これは悪名高い「セッション盗用」である可能性があります。

これは、実際の PHP セッションを盗むよりも簡単に達成できると思います。おそらく、実際のサーバーにアクセスする必要があるからです。そこにCookie盗用を含めない限り、誰かがあなたの Cookie をコピーして、自分自身をあなたのものにします。ログインが Cookie にどのように関連付けられているかによって異なります -> システムが Cookie データから新しい有効なセッションを作成する場合、問題が発生する可能性があります。クッキーを盗む方法は?クライアントは独自の Cookie を読み取ることができるため、単純な XSS (攻撃者がコードを表示させることができます) によって、不本意ながら Cookie を読み取ってどこかに投稿することができます。

要点はそれです

  • それが注射ではないというあなたの理由は誤りであり、あなたは本当にそれを調べるべきです.
  • はい、セッション盗用は可能です。定義方法によっては簡単です。
  • いいえ、セッション盗用は私がチェックアウトする最初の原因ではないようですが、繰り返しになりますが、私たちはあなたのコードについて何も知りませんでした.
于 2013-09-03T06:28:46.310 に答える
2

sql私のテーブル名と長いテーブル名のプレフィックスのため、それが注入ではないことを確認してください。

それが2つの理由によるものではないことについては、特に確信が持てません。

  1. それはあなたが与えた理由によるものではありません。
  2. 間違っていることが分かっているのに確信を持っていると、多くの重大な過ちを犯したという結論に駆り立てられます。

通常、この組み合わせにより、SQL インジェクションのコードが簡単に開かれます。と比べて:

この資料が示すように、通常、テーブル名と長いテーブル名のプレフィックスとは何の関係もありません。

とにかく、誰かがセッションを挿入してサイトの管理者側にログインする可能性はありますか?

はい、これも可能な可能性があります。セッション固定とセッション データ インジェクションを防止する必要があります (たとえば、ファイル システム/セッション ストア上のデータの改ざんを防止します)。

あなたが尋ねたように、セキュリティの経験が豊富な開発者に連絡を取って、コードベースのレビューを依頼することをお勧めします。セキュリティはプロセスであり、通常は 4 つの目で 2 つ以上を見ることができます。また、コードを書いていない人がいて、それほど関与せず、偏見が少ないフィードバックを与えるのは良いことです。たとえば、テーブル名はSQLインジェクションを防ぐと考えていますが、それはあいまいさによるセキュリティにすぎません。

于 2013-09-03T06:21:43.070 に答える