====== セキュリティ上注意すべき点 ====== ===== データを保管するディレクトリの安全について ===== 「MAD合作・合同誌向けファイル提出システム」(以下、「本システム」)では、システムの設置、及びイベント終了後の後処理の簡便性の観点から、MySQLなどのデータベースは利用しません。 そのため、設定内容や提出データなど、各種データはテキストファイルをベースに保管されます。 これらのデータは、初期状態では ''/設置ディレクトリ/data/'' ディレクトリに全て保管されています。このディレクトリには、ハッシュ化されたパスワードなど、外部に見られないようにすべきデータが含まれます。 通常のApache Webサーバーであれば、システムに同梱されている ''.htaccess'' ファイルにより、データディレクトリに外部からアクセス出来ないようになっています。 しかし、**Apache Webサーバーを利用していない場合、もしくは、Apacheが ''.htaccess'' ファイルを利用しない設定になっている場合、そのままの状態で利用するとセキュリティ的に脆弱になる恐れがあります**。 よく分からない場合は、''(設置場所のURL)/data/seccheck.txt''にアクセスしてみて下さい。この時、エラーメッセージが表示されず ''データディレクトリにアクセス出来る状態です。'' と出てきた場合、以下に挙げる対策のうちいずれかを講じる必要があります。 ※ここに書いてある内容がよく分からない場合は、システム制作者が代わりにポータルサイトの設置を行いますので、ご連絡下さい。 ==== Apacheにhtaccessファイルを読み込ませる、もしくはIISの設定をする事でアクセス制限する ==== Apacheの設定で ''.htaccess'' ファイルを有効にすれば、システムに同梱されているファイルが読み込まれ、データディレクトリが保護されます。 また、IISで設定を行う事でも、アクセス制限を行えます。 恐れ入りますが、ApacheやIISの設定方法については、サポート致しかねますので、各自で調べて下さい。 ==== ディレクトリを、外部から絶対にアクセス出来ない位置に移動する ==== 初期状態では、データディレクトリが「ドキュメントルート」((外部から ''http://'' などのURLでアクセス出来るファイルを置くディレクトリ。))の中にありますが、これをドキュメントルートの外側に置くのが最も安全だと思われます。 方法は次の通りです。 - データディレクトリの中身を、ドキュメントルート(サーバーによって異なりますが、''public_html'' などの名前になっています)の外側に移動して下さい。 - 以下に示す ''dataplace.php'' ファイルを、ポータルサイトの設置ディレクトリ(''login.php'' が入っているディレクトリと同じ場所)に作って下さい。 例えば、データディレクトリの中身を ''/home/hokkaidoyukkuri/portaldata/'' というディレクトリに移した場合は、 ''dataplace.php'' の中身は次の通りになります。 ==== ディレクトリの名前を推測困難にする ==== もし、上に挙げた方法を取る事が、(レンタルサーバーの制約などによって)出来ない場合は、最低でも、データディレクトリの名前を推測が困難なものに変更すべきです。 具体的には、以下のようにして下さい。 - データディレクトリの名前(初期状態だと ''data'')を、推測困難なもの(ランダムな英数字など)に変更して下さい。 - 以下に示す ''dataplace.php'' ファイルを、ポータルサイトの設置ディレクトリ(''login.php'' が入っているディレクトリと同じ場所)に作って下さい。 例えば、データディレクトリの名前を ''qawsedrftgyhujikolp'' にした場合は、 ''dataplace.php'' の中身は次の通りになります。 ==== 参考URL ==== [[https://www.dokuwiki.org/start?id=ja:security|セキュリティ(DokuWiki)]] ===== 通信内容の暗号化について ===== 本システムでは、ログイン時にパスワードを用いた認証を行います。パスワードなどの機密情報が盗聴されないための対策の1つとして、**SSL/TLS通信**(URLが ''https'' で始まるやつ)が挙げられます。 現在では、[[https://letsencrypt.org/ja/|Let's Encrypt]]など、無料で取得出来る証明書を利用して、SSL/TLS通信を導入出来ます。また、レンタルサーバーの1機能として、無料証明書の取得・適用が出来るものもあります(私が利用している「コアサーバー」にも、無料SSLの適用機能があります。詳細は各自で調べて下さい)。 また、無料SSLを適用しても、初期状態では、''http://'' のURLにアクセスした時にSSLが適用されません。以下に示す ''.htaccess'' ファイルを、ポータルサイトの設置ディレクトリ(''login.php'' が入っているディレクトリと同じ場所)に作ると、''https://'' が付いたURLに強制的に移動させられます([[https://deep-blog.jp/engineer/6316/|参考リンク]])。 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] \\ [[.|BACK]]