-2

SQL インジェクション攻撃が実行された場合、攻撃者はポート 80 経由でデータベース全体を転送できると著者が言及した記事で Sql インジェクションに関する記事を読んでいました。私の質問は、http ポート経由でデータベースを転送する方法はありますか?それをするために ?データベースの乗っ取りから身を守るにはどうすればよいですか

http://msdn.microsoft.com/en-us/magazine/hh580736.aspx

ポート 80 経由でデータベース全体を転送する

4

3 に答える 3

0

SQL インジェクションとは、コード (通常はポート 80 を説明する Web コード) に脆弱性があることを意味し、サードパーティが必要な SQL コマンドをデータベースで実行できるようにします。あなたがこれに対してオープンなままにしておくと、彼らがやりたいことをするのを防ぐことはできません.

それを回避する方法は、プログラミングしている特定の言語 (Python、Ruby、Java など) によって異なりますが、2 つの主なポイントは、「入力を適切にサニタイズすることです。つまり、文字が適切にエスケープされていることを確認して、誰かができるようにすることです」たとえば、セミコロンを挿入して混乱を招くと、クエリをパラメータ化します. これは、SQL クエリを記述するときに、ユーザー定義の入力にパラメータを使用し、それらのパラメータを安全に埋めることを意味します. Perl では、次のように使用します:

$sth = $dbh->prepare("SELECT * FROM TABLE WHERE id = ?");

$sth->execute($id);

それらをプレースホルダーと考えてください。

繰り返しますが、これの正確な方法は、選択した言語によって異なります。

これを理解したら、あなたは道を進んでいます:http://xkcd.com/327/

于 2013-01-15T07:42:21.627 に答える
0

そのような措置をとることは絶対に意味がありません。

これは、 1 つの脆弱性によって可能になる数十億のエクスプロイトのうちの 1 つにすぎません。つまり、ふるいの穴を埋めるようなものです。つまり、エクスプロイトを 1 つだけ開いたままにしておくのと同じように、面倒でまったく役に立たない作業です。それが使用されます。

その代わりに、SQL インジェクションからサイトを保護するだけです。

于 2013-01-15T07:42:40.510 に答える
-1

私の推測では、注入できる場所があれば、次の手順で注入できる可能性があります。

  1. DB を SQL でバックアップするか、すべてのデータをファイルにスクリプト化します
  2. SQL Serverのxp_cmdshellのように、いくつかのDBMS関数を使用してそのファイルをWebサーバーにコピーし、インターネットに公開します
  3. Web サーバー経由でダウンロードする
于 2013-01-15T07:40:15.247 に答える