php/mysql/freebsdでサイトを構築しています。
ユーザが入力したものをデータベースへ登録したり、
データベース内容を修正したり、
web上に反映させたりします。
内容をメールでユーザに送信したりもします。
簡単に言えば、はてな、みたいなサイトです。
ここで気になるのはやはりセキュリティで、
いろいろ断片的に情報を仕入れては
その都度対策を追加していますが、
大丈夫なのか不安があります。
そこで、上記のようなシステムの場合、
「これらの対策を一通りとっておけば、基本的な対策は大丈夫だろう」
「これは最低限やっておかないと、ヤバい」
という一連の対策を知りたいと思っています。
対策法が書かれたサイトやアドバイスなど、
意見を頂けると助かります。
もちろん完全になることはないことはわかっているのですが、
「とりあえず、これはしといたほうがいい」
という基本的な対策を、
頂いたアドバイスを元に試してみようと思っています。
http://www.ipa.go.jp/security/awareness/vendor/programmingv2/ind...
IPA(独立行政法人情報処理推進機構)のセキュリティ講座です。
PHPに特化した記述ではありませんがどの言語でも基本は同じです。
ここに記述されていることを抑えておけば大丈夫でしょう。
私もWeb構築をよくします。中規模程度の企業サイト(個人の鯖ではここまで考慮しなくてもいいと思います)の場合を想定して考慮すべきことを羅列してみました。
コーディング上で出来るセキュリティのうち一番気をつけているのはクロスサイトスクリプティングです。
http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B...
のっとりが一番怖いのです。。。
あとは各ページに不正なアクセスが無いかセキュリティ監査を設けています。パラの妥当性や改ざん、なりすましなど細かくチェック
コーディング外でもセキュリティを考慮しなければいけないことはいっぱいあります。
日々できることとしては最新セキュリティパッチの導入ですね。
メールでも重要なことは暗号化しますし、認証情報や個人情報はもちろんのことです。
ファイアーウォールはソフトよりも鯖とは別にハードを用意します。最低限必要なポートしか開けません。またここにも監視を入れてたりします。海外や串、接続時間、アクセス元、アクセス先など怪しいものを事前にチェックできるものはする。
適切なアクセス権になるようファイルやフォルダに権限を与えたり、重要情報は公開フォルダから外しておいたり。
※万一に備え常駐アプリでホムペの改竄チェックもしていますよ。
セキュリティ対策は環境や目的、予算によって随分違うように思えます。専門スタッフを置けないのであれば、ある程度有名なレンタルサーバーを借りるのが吉かも知れませんよ。楽だしね^^
どうもありがとうございます。
やはりクロスサイトスクリプティングが一番怖いですか・・・。
専用サーバの保守も含めると、やることが多いですね。
たぶん中規模程度のサイトを公開すると思うので、
とても参考になります。
セキュリティを考えると、自分で設定した専用サーバで個人情報扱うのは怖いですねぇ・・・。
Webアプリケーションを作る前に知るべき10の脆弱性 − @IT
星野君のWebアプリほのぼの改造計画 連載インデックス - @IT -
さしあたりプログラム側ではこのぐらいは。
OS自体のセキュリティホールもありますが、一般的にアプリのほうが脆弱です。
どうもありがとうございます。
@ITは素晴らしくわかりやすくまとめてありますね・・・。
順にチェックしてみたいと思います。
せめてアプリ側ではアナが無いようにしておきたいところですね。
セキュリティーといったら、いろいろ関わっています。
1.サーバの弱性
ホール、ポートなどチェックして、弱性があるかどうか
2.データベースの弱性
常に最新バッチを確認し、影響がなければ適用
ログインユーザのセキュリティの設定の弱性があるかどうか
3.ウェブアプリの確認
アプリケーションサーバの安全性を確認する
サーバサイトのアプリの言語自体の安全性を確認する
クライアントサイトのクロスサイトスクリプティングがあるかどうかを確認する
4.後は運用上のデータ保全性の確認
バックアップ体制はどうなるかなどの確認
大まかに書いて、ご参考まで。
どうもありがとうございます。
やはり結構やることが沢山ありますね。
大規模になると攻撃対象になってくると思いますので、
一つ一つ順に調べながら対策してみようと思います。
どうもありがとうございます。
確かここは以前xss脆弱性があって話題になっていましたね・・・。
記事はとてもわかりやすそうですね。
早速チェックしてみます。
どうもありがとうございました。