2025/10/08
------------------------------------------------------------
Apache Content Security Policy
------------------------------------------------------------
・httpd.confに書く
・各ディレクトリの.htaccessに書く
Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://trustedscripts.example.com"
Header set Content-Security-Policy "default-src 'self'; img-src 'self' data:; script-src 'self' https://apis.example.com"
Header set Content-Security-Policy "default-src 'self';"
のように指定すると、すべてのリソースの読み込み先を自分自身(同一オリジン)に限定します。
そのため、jQuery を CDN(例: https://code.jquery.com/jquery-3.7.1.min.js) から読み込もうとすると、
外部ドメインなので CSP によってブロックされます。結果として jQuery が参照できなくなります。
回避方法
外部 CDN を利用したい場合は、そのドメインを CSP に追加する必要があります。たとえば jQuery CDN を許可するなら:
Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://code.jquery.com; style-src 'self' https://code.jquery.com; img-src 'self' https://code.jquery.com;"
普通のjQueryはjavascriptだけだが、jQuery-UIの場合はテーマをCSSから、さらに一部は画像も読み込むので、
script-src, style-sec, img-src を設定する必要がある。
------
または全て許可する。
------
Header set Content-Security-Policy "default-src 'self' https://code.jquery.com"
------
------------------------------------------------------------
PHP open_basedir
------------------------------------------------------------
デフォルト=NULLは、サーバの全てのディレクトリのファイルにアクセスできる意味。
open_basedir = /var/www/html:/tmp のように設定することで、/var/www/htmlと/tmp以外のディレクトリへのアクセスが制限されます。
------------------------------------------------------------
------------------------------------------------------------
PHP expose_php
------------------------------------------------------------
expose_php = Off
とすると、HTTP レスポンスヘッダーに PHP のバージョン情報を表示しない。
(以上)