初心者で全然詳しくないのですが、例えばXSS対策などの基本的な対策方法(アルゴリズム)はどの言語でも同じ、必要になるのでしょうか?(言語そのものの脆弱性は別)
例えばPHP向けに書かれたセキュリティ対策は他の言語にも応用できるのですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
対策項目自体は、言語を問わず同じです。Cやアセンブラなどの低レベルの言語を使う場合は、さらに項目が増えるかと思いますが。
フレームワークを使っている場合は、プログラマが明示的に対策しなくてもフレームワーク側で対策してくれているかもしれません。
投稿2016/08/05 14:55
総合スコア84423
0
ベストアンサー
PHP向けのセキュアなコードがそのまま他のプログラム言語で使えますか、という意味でしたら利用できません。
ですが参考にされた書籍・サイトなどでWebアプリケーション向けの一般的考慮すべき脆弱性とその対策が示されているならば、その考え方はプログラム言語を問わず利用できます。
###メジャーな脆弱性を知る
Webアプリでは以下のような主要な脆弱性があります。
- HTML表示の仕組みの脆弱性
- XSS(クロスサイトスクリプティング)
- CSRF(クロスサイトリクエストフォージェリ)
- クリックジャッキング
- セッション管理の脆弱性
- セッション固定化攻撃
- セッションハイジャック
- HTTP通信時の脆弱性
- HTTPヘッダインジェクション
- SQL発行時の脆弱性
- SQLインジェクション
- 実装不備による脆弱性
- OSコマンドインジェクション
- ディレクトリトラバーサル
と主要な脆弱性を上げるたけでもこれだけありますが、
それぞれ一般的や対策方法は存在し、それぞれの言語で容易に対策するための仕組みも大体は提供されています。
(C、とかアセンブラ言語とかになると話は別)
例えばSQLインジェクションであれば、バインド機構を利用するという明確な対策方針が示されています。
(バインド変数、バインドパラメタと言われるものもこの仕組みを利用)
これらのキーワードと自分の利用したい言語を照らし合わせて、
対策方法を調査すると大体は回答に行き着くでしょう。
###フレームワークを用いた開発
フレームワークを用いた開発の場合、
特にHTML(ビュー部分)については、
暗黙的にXSS対策を自動で施しているものがあります。
意識せずとも対策されるケースもあるといったことは知っといて損はないでしょう。
###追記
IPAさんってばこんな素敵なページも用意してたのね…
セキュア・プログラミング講座
投稿2016/08/05 16:41
編集2016/08/05 16:56総合スコア1636
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
https://www.ipa.go.jp/security/vuln/websecurity.html
にとても良くまとめられています。
webアプリケーションである以上対策しなければならない点は(言語やwebサーバそのものの脆弱性を除けば)同じです。
脆弱性チェックシートが存在出来るのはこのためです。
それをどう実装するかは言語や環境によって異なり、言語や環境によっては標準で対応されているため対応しなくていいというケースもあります。
投稿2016/08/05 16:11
総合スコア18709
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/08/06 06:57
0
言語そのものの脆弱性を除くと、当然言語そのものと関係のない部分しか残らないので、対策方法は同じようなものになります。
言語の脆弱性を除くとWebアプリに対する対策は、以下に関するものになるかと思います。
・DBへのアクセス
・表示
・session管理
・ブラウザ
*漏れていたらすみません^^;
各言語の仕様としては正しい動きが、上記の各所において問題点となるケースを、Webアプリに対するセキュリティ対策と呼ぶので、対策をしないことはありえません。
各言語共通のセキュリティ対策ポイントがあることは事実ですが、共通でない箇所(言語固有の箇所)も当然あるので、言語が変われば、一通りセキュリティに関して再調査することをおすすめします。
投稿2016/08/05 15:19
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/08/06 06:57
0
- 基本的な対策方法はどの言語でも同じか
違います。言語やフレームワーク側で対策してくれている場合もあります。
ただし、Webアプリケーションの基本的な脆弱性というのはどの言語でも大体同じ様に気を付けるべきと考えておくのは問題ありませんし、気をつけすぎて困ることはないでしょう。
- どの言語でも対策は必要か
絶対に必要です。
一番基本的なユーザーが入力した情報や外部のWebサービスのデータを扱うときの脆弱性対策はどのWebアプリケーションでも必要です。入力したままを画面に表示したりSQL作成にパラメータを使わず利用したりすると悪意のあるスクリプトが入力内容に含まれていた場合に問題となります。
かといって、入力データをどのように用いるかはアプリケーション次第なので、安全に扱うように配慮する必要があります。
- 例えばPHP向けに書かれたセキュリティ対策は他の言語にも応用できるのですか?
できるとは思いますが、各脆弱性に対してその言語ではどう対策すればよいかは調べた方が良い様に思います。
投稿2016/08/05 14:59
総合スコア2604
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/08/06 06:58
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/08/06 06:58