ページ 11

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

Posted: 2018年1月28日(日) 20:03
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

よろしくお願いいたします。

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

Posted: 2018年2月08日(木) 15:37
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の情報が表示されてしまう
のではないかと。

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

Posted: 2018年2月09日(金) 01:25
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強化も兼ねて以前から
運用しているサイトをセキュア運用に切り替えるケースも少なくないと思いますが、一度設定を確認してみてはいかが
でしょうか。

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

Posted: 2018年2月14日(水) 12:43
by yama
https://github.com/modxcms-jp/evolution ... evelop.zip
修正しました。managerフォルダ・assets/pluigins/managermanager/フォルダを上書きしていただいてよいでしょうか?

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

Posted: 2018年2月14日(水) 20:31
by masco
mod_kksさま、yamaさま
ありがとうございます。

両方とも問題は解決されました。

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

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

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

Posted: 2018年2月19日(月) 17:48
by mod_kks
画像のアップロードに関してはおそらく以下の内容が影響しているのではないでしょうか。

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))

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

Posted: 2018年2月19日(月) 17:55
by Kenny
mod_kks様

早速、ありがとうございます!
見事治りました!

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

Posted: 2018年2月21日(水) 11:23
by yama
管理画面以外でも使用頻度が増えてきたので$modx->modx_move_uploaded_file() で動作するように改めたはずですが、もしかするとちゃんとできてないのかも?後ほど確認してみます。

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

Posted: 2018年2月21日(水) 14:25
by Kenny
Yamaさま

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