Show page source of ProjectWeb_Security #108142

[[PageNavi(NavigationList)]]

= プロジェクトWebサーバーのセキュリティ

 OSDNは、幅広いプロジェクトにホスティングサービスを提供しています。これらのプロジェクトの中には、Webサーバ上に置いたコンテンツを安全に保管する必要性のあるものもありますが、現在利用可能なオプションの数は限られています。この文書では、一般に要求されるオプションについて説明します。

== プロジェクトWebサーバの権限

各プロジェクトのWebページを表示する際には、そのプロジェクトごとのユーザ/グループ権限で動作します。
(例えば foo というプロジェクトの場合 ユーザ foo.p グループ foo というユーザの権限でで動作します)

CGI等でファイルを生成するような動作をするものに関しては上記に注意してファイルやディレクトリの permission の設定等を行うといいでしょう。

'''共有サーバ上にファイルが配置されていますので 全てのユーザに読み書きできてしまうような permission (666 や 777 といった設定)はしてはいけません'''


== コンテンツの暗号化

 プロジェクトWebサーバーとユーザーの間で行われるhttpによる通信は、すべて'''盗聴される可能性があります'''。なるべくhttpsを利用するようにしてください。


== Webコンテンツに対するアクセス制限

 プロジェクトWebサーバーでは、Webサイト上の特定のページに対するアクセス制限を行うためにApacheのBasic認証を使用できます。Basic認証をプロジェクトのWebコンテンツに設定する場合は、次の手順に従ってください。

 1. OSDNのシェルサーバ(shell.osdn.net)にSSH経由でログイン
 2. htpasswdを使用してパスワードファイルを生成
 3. /home/groups/projectname/htdocsディレクトリツリー内のBasic認証で保護するディレクトリに.htaccessファイルを作成

 重要な点として、プロジェクトのBasic認証ファイルでは通常のOSDNのパスワードを'''使用しない'''ことがあります。必ずアカウントごとに異なる安全なパスワードを使用する必要があり、これも例外ではありません。まず、最初のエントリ(ユーザ)を次のように作ります。
{{{
htpasswd -cm /home/groups/projectname/.htpasswd usernamechgrp projectname /home/groups/projectname/.htpasswdchmod o-w /home/groups/projectname/.htpasswd
}}}

 以降のエントリ(ユーザ)は、次のように作ります。

{{{
htpasswd -m /home/groups/projectname/.htpasswd username
}}}

 .htaccessファイルには、次のように記述します。

{{{
AuthUserFile /home/groups/projectname/.htpasswdAuthName projectnameAuthType Basic
<Limit GET>
require valid-user
</Limit>
}}}

 他にセキュリティについてご不明点、ご要望などありましたら、[https://osdn.net/ticket/newticket.php?group_id=10743&type=27985 サポートリクエストとしてOSDNのスタッフに直接提出してください]。

== POSTの自動制限

プロジェクトWebに対し、特定のアドレスから一定期間内に多くのPOSTリクエストが行なわれた場合、
そのアドレスを自動的にブロックしています。これにより、一部の Ajax を利用した Web アプリケーションが
不適切にブロックされてしまう可能性があります。

POST を多用するアプリケーションを動かす場合は、ご連絡いただければこの制限を解除いたします。


[[PageNavi(NavigationList)]]