baserCMS クラスリファレンス

BurgerEditorUtil
in package

Table of Contents

Constants

HTACCESS_DENY_ALL  : mixed = <<<'HTACCESS' # BurgerEditor が自動生成したファイルです。 # こ...
全面拒否用の .htaccess の内容
HTACCESS_DENY_EXECUTABLE  : mixed = <<<'HTACCESS' # BurgerEditor が自動生成したファイルです。 # 画...
実行され得る拡張子のみ拒否する .htaccess のテンプレート

Methods

b64d()  : string
baserCMS標準のbase64UrlsafeEncodeが連続ドットのファイル名を禁止した特定サーバで 動作しないため独自定義のdecode版
b64e()  : string
baserCMS標準のbase64UrlsafeEncodeが連続ドットのファイル名を禁止した特定サーバで 動作しないため独自定義
ensureUploadDirProtection()  : void
アップロードディレクトリに .htaccess を設置する
getAddonPath()  : array<string|int, string>
Addon のパスを取得する
getBlockPath()  : bool|string
ブロックのパスを取得する
getDeniedExts()  : array<string|int, string>
アップロードを常に拒否する拡張子の一覧を取得する
getEditorFieldNames()  : array<string|int, string>
エディタが素の HTML で出力する入力要素の name 属性を収集する
getExtension()  : bool
拡張子取得
getFileNameNoExtension()  : false|string
getFileNameNoExtension
getGoogleMapApiKey()  : string
GoogleMapAPI Keyを取得
getSuffix()  : string
静的ファイルに対するサフィックスを取得する
getTypePath()  : bool|string
タイプのパスを取得する
mb_basename()  : mixed
マルチバイト対応 basename

Constants

HTACCESS_DENY_ALL

全面拒否用の .htaccess の内容

public mixed HTACCESS_DENY_ALL = <<<'HTACCESS' # BurgerEditor が自動生成したファイルです。 # このディレクトリのファイルは BurgerEditor の dl アクション経由でのみ配信するため、 # 直接の HTTP アクセスを拒否します。 <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> HTACCESS

mod_authz_core の有無で Apache 2.4 / 2.2 の記法を出し分ける。 php_flag は PHP-FPM 環境で「Invalid command」となり 500 を招くため使用しない。

HTACCESS_DENY_EXECUTABLE

実行され得る拡張子のみ拒否する .htaccess のテンプレート

public mixed HTACCESS_DENY_EXECUTABLE = <<<'HTACCESS' # BurgerEditor が自動生成したファイルです。 # 画像は直接配信するため、サーバーサイドで実行され得る拡張子のみ拒否します。 # 一覧は BurgerEditor の設定 Bge.deniedExtension から生成しています。 <FilesMatch "(?i)\.(%s)$"> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </FilesMatch> HTACCESS

画像は直接配信する必要があるため全面拒否にはできない。 %s には Bge.deniedExtension から生成した拡張子の正規表現が入る。

Methods

b64d()

baserCMS標準のbase64UrlsafeEncodeが連続ドットのファイル名を禁止した特定サーバで 動作しないため独自定義のdecode版

public static b64d(string $str) : string
Parameters
$str : string
Return values
string

b64e()

baserCMS標準のbase64UrlsafeEncodeが連続ドットのファイル名を禁止した特定サーバで 動作しないため独自定義

public static b64e(string $str) : string
Parameters
$str : string
Return values
string

ensureUploadDirProtection()

アップロードディレクトリに .htaccess を設置する

public static ensureUploadDirProtection() : void

アップロード時の拡張子制限に加えた多層の措置。 files/bgeditor/other/ は dl アクション経由でのみ配信するため全面拒否とし、 files/bgeditor/img/ は直接配信が必要なため該当する拡張子のみ拒否する。 files/bgeditor/ 直下はサンプルPDF等を直リンクしているため対象外とする。

既存の .htaccess は上書きしない(サイト固有の設定を壊さないため)。

getAddonPath()

Addon のパスを取得する

public static getAddonPath() : array<string|int, string>
Return values
array<string|int, string>

getBlockPath()

ブロックのパスを取得する

public static getBlockPath(mixed $blockName) : bool|string
Parameters
$blockName : mixed
Return values
bool|string

getDeniedExts()

アップロードを常に拒否する拡張子の一覧を取得する

public static getDeniedExts() : array<string|int, string>

Bge.deniedExtension を正規化して返す。アップロード時の判定と .htaccess の生成の双方がこれを参照する(一覧の重複定義を避けるため)。 配列とカンマ区切り文字列のどちらでも指定できるようにしている。

Return values
array<string|int, string>

getEditorFieldNames()

エディタが素の HTML で出力する入力要素の name 属性を収集する

public static getEditorFieldNames() : array<string|int, string>

BurgerEditor は編集フォーム内に FormHelper を経由しない input を出力するため、 それらは FormProtection のトークンに含まれないまま送信され「想定外のフィールド」 として検証を落とす。この一覧を unlockedFields として渡すことで、 content[id] 等の hidden フィールドを FormProtection の保護対象に 残したままエディタを動作させる。

収集元は次の2つ。

  • テンプレートの走査(サードパーティプラグインが提供する Addon も getAddonPath() に含まれるため、外部で追加された name も自動的に対象となる)
  • JS が動的に生成するフィールドの固定一覧(走査では検出できないもの)

永続キャッシュを持たないのは、Addon 追加時に古い一覧が残ると保存が丸ごと 失敗する形で問題が出るため。

Return values
array<string|int, string>

getExtension()

拡張子取得

public static getExtension(string $filename) : bool
Parameters
$filename : string
Return values
bool

getFileNameNoExtension()

getFileNameNoExtension

public static getFileNameNoExtension(mixed $filename) : false|string
Parameters
$filename : mixed
Return values
false|string

getGoogleMapApiKey()

GoogleMapAPI Keyを取得

public static getGoogleMapApiKey() : string
Return values
string

getSuffix()

静的ファイルに対するサフィックスを取得する

public static getSuffix(mixed $filePath) : string
Parameters
$filePath : mixed
Return values
string

getTypePath()

タイプのパスを取得する

public static getTypePath(string $typeName) : bool|string
Parameters
$typeName : string
Return values
bool|string

mb_basename()

マルチバイト対応 basename

public static mb_basename(mixed $str[, mixed $suffix = null ]) : mixed
Parameters
$str : mixed
$suffix : mixed = null
On this page

Search results