0

私は通常、codeigniterフレームワークを使用して作業します。これは、SQLインジェクションの防止に役立つものです。たとえば、xssによるフォーム入力データのクリーンアップなどです。

私はSQLインジェクションとは何か、そしてそれを防ぐ方法についての基本的な考えを持っていますが、私の友人は非常に基本的なサイトを持っており、ユーザー入力は電子メールスクリプトへのcgiフォームだけでした-サイトの一部は大人に置き換えられましたコンテンツ。

ですから、このような基本的なサイトを誰かがどのように制御できるのか、また、自分のサイトを構築するときにどのような脆弱性に注意する必要があるのか​​、興味があります。

4

4 に答える 4

7

開始するのに適した場所はOWASPです。

特に、OWASPトップ10は、最も一般的なセキュリティの問題について詳しく説明しています

原則としてあなたはすべきです...

  • ユーザー入力(フォーム入力、URL入力、Cookieなど-Firebugなどの検査ツールやFiddlerなどの仲介ツールの使用を含むユーザーが変更できるもの)を絶対に信用しないでください。これにはたくさんのカテゴリがありますが、OWASPはそれらを個別にカバーしています。

  • 他の人のスクリプトを絶対に信用しないでください(つまり、あなたは彼らのJavaScriptファイルをあなたのウェブサイトに含めたり、彼らのPHPファイルをあなたのウェブサイトに含めたりします)

  • プレーンHTTPを介してログインやその他の機密データ交換を実行しないでください

于 2012-09-27T14:13:10.393 に答える
1

さまざまな攻撃や脆弱性について学ぶのに非常に役立つwww.enigmagroup.org/をチェックしてください。

于 2012-09-27T14:12:44.933 に答える
1

最善の方法は、OWASPトップ10を読むことです。これに慣れていない場合は、Open Web Application Security Projectであり、Webアプリのセキュリティに取り組んでいるコミュニティです。

悪意のあるユーザーが最も悪用しやすいのは、SQLインジェクションとXSSです。XSSはユーザーに悪影響を与える可能性がありますが、単一のSQLインジェクションの脆弱性がサーバー全体を危険にさらす可能性があります。SQLIは、パラメーター化されたクエリを使用するだけで防止でき、XSSの防止は、適切な入力検証と出力エンコーディングを使用することで実行できます。

ソフトウェアエンジニアリングの観点から、ユーザーによって提供された入力(これには非表示フィールドが含まれます)がコア機能を駆動することはありません。たとえば、サイトで商品を販売していて、価格の隠しフィールドがある場合、誰かがその値を非常に簡単に変更できるため、これは非常に悪いことです。

ユーザー名とパスワードを収集する場合は、それらがハッシュ化およびソルト化されていることを確認し、ユーザー情報を表示または収集するすべてのログイン画面とページにSSL(https)が設定されていることを確認してください。

OWASPトップ10のドキュメントは、https ://www.owasp.org/index.php/Top_10_2010にあります。

入力の検証とエンコードの実行についてサポートが必要な場合は、OWASP ESAPI(https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API )を確認し、[PHP]タブをクリックしてください。

SQLインジェクションの場合、フレームワークを正しく使用している限り、codeigniterなどのフレームワークで保護する必要があります。ありがたいことに、フレームワークの使用が増えているため、SQLIの問題はますます少なくなっています。

于 2012-09-27T14:24:00.247 に答える
1

コード行と同じくらい多くのセキュリティ問題があります。いくつかの例:

  • SQLインジェクション
  • バックエンド側のXSS(リモートコードを含むrequire_once($_GET['x']
  • フロントエンド側のXSS(セッションをハイジャックするためのページへのJAVASCRIPTを含む)
  • ユーザーに代わって不要なアクションを実行する-「パスワードの変更」、「プロファイルの変更」、「ログアウト」、「コンテンツの追加」などのすべてのアクションには、一意のトークンが必要です。そうでない場合、誰かがユーザーをそれらのアクションにリダイレクトできます
  • svn checkoutすべてのパブリックディレクトリの.svnフォルダを保護から解放する場合

http://code.google.com/p/skipfish/などのスキャナーをいつでも使用して、アプリケーションのセキュリティ問題を見つけることができます。

于 2012-09-27T14:26:35.123 に答える