非公開リソースが閲覧可能になる

質問全般・改善要望
返信する
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

非公開リソースが閲覧可能になる

投稿記事 by masco »

さくらのレンタルサーバー
php 7.1.11
MySQL 5.5
MODX 1.0.20J
ブラウザ Chrome

非公開リソースが閲覧可能
リソースを非公開にしているにもかかわらず、ログインしていないブラウザからリソースが閲覧可能になっています。

ManagerManagerのddMultipleFieldのエラー
アップデート当初はエラーが出ていませんでしたが、しばらく使用していたら下記のエラーがリソース編集画面で毎回生じるようになりました。

ManagerManager: An error has occurred: TypeError - $ddMultipleField.sortable is not a function

よろしくお願いいたします。
mod_kks
メンバー
メンバー
記事: 31
登録日時: 2017年11月04日(土) 01:31

非公開リソースが閲覧可能になる

投稿記事 by mod_kks »

非公開リソースが閲覧可能な件は、$modx->prepareResponse()内でのドキュメントオブジェクトの
マージの順序の問題ではないかと推測しています。

/manager/includes/document.parser.class.inc.php

if(isset($_)) $this->documentObject = array_merge($this->documentObject,$_);

if(isset($_)) $this->documentObject = array_merge($_,$this->documentObject);

sendForwardで$modx->documentIdentifierがエラーページのidに上書きされて再びprepareResponse
が呼ばれる際、後から来た内容を$_の内容でマージしているようなので、元idの情報が表示されてしまう
のではないかと。
mod_kks
メンバー
メンバー
記事: 31
登録日時: 2017年11月04日(土) 01:31

非公開リソースが閲覧可能になる

投稿記事 by mod_kks »

ManagerManagerのddMultipleFieldのエラーの件ですが、発生し得る条件として以下をチェックしてみてください。

1. グローバル設定内「サイトのURL」がhttp://で始まる非セキュアURLになっている
2. サーバータイプが「http」になっている(これはあまり関係ないかも)
3. サーバ設定自体はSSL対応になっていて管理画面はhttps://からのセキュアURLでアクセスしている

つまるところmodx上の設定でサイトURLが非セキュアURLになっていて、なおかつ管理画面にセキュアURLでアクセス
した場合に発生するということです。

ddmultiplefields.phpでは、ページ内でjQuery.uiオブジェクトが存在しない場合に、自身のディレクトリからjQuery UI
を読み込ませようとする記述があるのですが、ファイルまでのパスをなぜかbase_urlではなくsite_urlで生成しているため
絶対パス記述になります。この時、グローバル設定内「サイトのURL」をhttp://で設定していて、https://でアクセスする
とブラウザのセキュリティポリシーに引っかかり読み込みをブロックしてしまうため、依存ファイルが読み込めずエラーが出ます。

$site = $modx->config['site_url'];

$site = $modx->config['base_url'];

一応、対策としては上記のようにすることで回避できるのですが、あまり良い方法ではないので「サイトのURL」などの
設定を変えるのが良いと思います。

最近ではLet's EncryptやCloudFlareなどで手軽にSSL証明書を発行できて利用できるので、SEO強化も兼ねて以前から
運用しているサイトをセキュア運用に切り替えるケースも少なくないと思いますが、一度設定を確認してみてはいかが
でしょうか。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

非公開リソースが閲覧可能になる

投稿記事 by yama »

https://github.com/modxcms-jp/evolution ... evelop.zip
修正しました。managerフォルダ・assets/pluigins/managermanager/フォルダを上書きしていただいてよいでしょうか?
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

非公開リソースが閲覧可能になる

投稿記事 by masco »

mod_kksさま、yamaさま
ありがとうございます。

両方とも問題は解決されました。
Kenny
メンバー
メンバー
記事: 179
登録日時: 2011年5月28日(土) 13:41

非公開リソースが閲覧可能になる

投稿記事 by Kenny »

私も同じ症状になっていまして、早速
https://github.com/modxcms-jp/evolution ... evelop.zip
を上書きしてみたのですが、リソースの中でテンプレート変数をimageにして「挿入」→「参照」ボタンを押すと
Error, "Failed to upload file, internal error."
というウィンドーが出てアップロードが出来なくなります。
デモサイトで試そうと思ったのですが、再現できなく自分の環境で試してみました。
mod_kks
メンバー
メンバー
記事: 31
登録日時: 2017年11月04日(土) 01:31

非公開リソースが閲覧可能になる

投稿記事 by mod_kks »

画像のアップロードに関してはおそらく以下の内容が影響しているのではないでしょうか。

http://forum.modx.jp/viewtopic.php?f=32&t=1822

/manager/media/browser/mcpuk/connectors/Commands/FileUpload.php
上記ファイルの以下の部分を修正することでアップロード自体はできるようになる
のではないかと思いますがいかがでしょうか。

if($modx->modx_move_uploaded_file($tmp_name,$target))
 ↓
if($modx->manager->modx_move_uploaded_file($tmp_name,$target))
Kenny
メンバー
メンバー
記事: 179
登録日時: 2011年5月28日(土) 13:41

非公開リソースが閲覧可能になる

投稿記事 by Kenny »

mod_kks様

早速、ありがとうございます!
見事治りました!
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

非公開リソースが閲覧可能になる

投稿記事 by yama »

管理画面以外でも使用頻度が増えてきたので$modx->modx_move_uploaded_file() で動作するように改めたはずですが、もしかするとちゃんとできてないのかも?後ほど確認してみます。
Kenny
メンバー
メンバー
記事: 179
登録日時: 2011年5月28日(土) 13:41

非公開リソースが閲覧可能になる

投稿記事 by Kenny »

Yamaさま

いつもありがとうございます!
よろしくお願いします。
返信する