バックグラウンド
会社がサーバーを保守するのを手伝う契約をしています。私はいくつかのマイナーなPHPプロジェクトに取り組んでいますが、パフォーマンスの問題を調べ、最近ではハッカーのログをスキャンしています。
これらの人々はしばらくの間サーバーを実行しており、その最後の部分にレガシーアプリケーションと呼ぶものがあります。マジッククオート、グローバル変数(で$id
上書き可能$_GET['id']
)を使用し、.htaccessを唯一のセキュリティとして使用する場合があります。セキュリティとプログラミングの悪夢。
私たちは過去に、主にSQLインジェクションでハッキングされました。SQLインジェクションはSLEEP(99999999)
コマンドを実行し、DOS攻撃として機能します。幸いなことに、彼らは「小さなボビーテーブル」を実行しませんでした。
XKCD:http ://xkcd.com/327/
そのため、脆弱なSQLステートメントをmysql_query()
(mysqliではなく)PDOトランザクションに書き直しました。私はまたのためのクエリを分析していますSLEEP
とUNION
、我々が使用しないが、注射は持っています。ここまでは順調ですね。
最新号
最近、電子メールアドレスがスパマーによって作成されたと思われるものに変更されるなど、ユーザーのDBのレコードが変更されていると言われています。
彼らの列には列がないことに気づいたlast_modified
ので、誰が言うまでもなく、いつ変更されたかさえ知ることができませんでした。私はそのコラムを追加しましたが、それはかろうじて最初のステップです。
このテーブルを見ると、パスワードがソルト化されておらず、ハッシュ化されておらず、プレーンテキストとして保存されていることがわかりました。
クライアント通信
請負業者として、狂人のように腕を振り回すことなく、状況全体についてどのようにアプローチできますか?何かアドバイス?私は穏やかなアプローチを考えていました、
問題#1 あらすじ これが問題である理由 これが修正されない場合に何が起こるか 修正案 問題#2 あらすじ これが問題である理由 これが修正されない場合に何が起こるか 修正案