フォーラムへの返信
-
投稿者投稿
-
forbidden by Options directive
はわかりませんが、validate_referer:〜
は今回追加していただいたロガーですね。ちょっとこれだけでは何もわからないので、下記のリプライのように、コードを改変して記録されるようになったログをすべて共有してください。♥ 0Who liked: No userあ、すみません、違いますね。
snow_monkey_layout
は「ページのレイアウト」を変更するフックになります。光下さんが言われているのは「検索結果ページのページレイアウト」ではなくて「検索結果ページの記事一覧レイアウト」ということですよね?ということであれば
snow_monkey_layout
では変えられないのでちょっとまってください。♥ 0Who liked: No userカスタマイザーで記事一覧のレイアウトを「テキスト」に変更
↓
記事一覧も検索結果も「テキスト」になる
↓
下記のコードを追加して検索結果画面のときは「リッチメディア」になるようにするadd_filter( 'snow_monkey_layout', function( $layout ) { return is_search() ? 'rich-media' : $layout; } );
試してみてください!
♥ 0Who liked: No userとなるとやはりフィルターは効いていなくて、偶然キャッシュの更新のタイミングだったとか、そういう感じがしますね。
基本的には
で書いたように、コードを改変してロガーを仕込み、ログを確認して、最後の2行が一致していなければページキャッシュが怪しい(サーバーのキャッシュ機能 or キャッシュ系プラグイン)という感じになるかなと思います。
♥ 0Who liked: No userなるほどです。
snow_monkey_form/setting/session-name
というフィルターフックを入れたかな?というのと、Snow Monkey Forms では PHP セッションは使っていないと思うので、気になっての質問でした。でも実際に効果があったのであれば何かあるのかもしれませんね。ありがとうございました!@rie0310 さん
解決済みということで、トピックのクローズをお願いします!♥ 0Who liked: No user下記トピックにある
snow_monkey_layout
フィルターフックを使ったコードを使うとどうでしょうか?個人的にはカスタマイザー上で適用するレイアウトをそれぞれ別に選択できると良いのですが⋯
確かにそうですね。これはちょっと検討します。
♥ 0Who liked: No user@mihashinoriyuki さん
Snow Monkey Forms にsnow_monkey_form/setting/session-name
というフィルターフックってありましたっけ?
なぜこのコードで解決できるのか興味があるので良かったら教えてください!♥ 0Who liked: No userそのファイルだけということなら権限が怪しいですかね?
Cursor は使ったことがないのでわかりませんが、アップデートに失敗したタイミングで何らかのログがでるのではないでしょうか? Filezilla ならメッセージログのエリアにログが表示されます。
My Snow Monkey プラグインは中のファイルに何らかの制限をかけるようなことはしていないピュアな空のプラグインなので、ローカルファイルの権限、ツールの設定、サーバー側の設定(権限その他)を確認していくのが良いのかなと思います。
♥ 0Who liked: No userんーーそうですね、トランジェントキャッシュの名前はそれであっているので削除された後、再度チェックしてキャッシュされるはずです。でも無効になっているように見えますね…。
ちょっと直接見てみないとわからなさそうなので、WordPress のアカウントと、FTP などサーバー接続できるアカウントを発行いただき、直接サイトを確認させていただくことは可能でしょうか?
♥ 0Who liked: No user最後の2行の文字列は送信されたトークンと保存されているトークンで、ここが一致しないと不正なアクセスと判定されてしまいます。
wpX Speed だと、サーバーキャッシュの設定があるようですが、これは有効になっていますかね?もし有効になっている場合、詳しい仕様がわからないので何ともなのですが、例えば PHP の出力もキャッシュするような仕様の場合はエラーになる可能性があるかもしれません。なので有効にしている場合は無効にして確認をお願いします。
♥ 0Who liked: No userDM 拝見しました!気づくのが遅くなってしまいすみません。サブスクも問題なく「有効」状態でした。認証チェックはテーマ側で1日間キャッシュするようになっているので、何らかの原因で偶然認証チェックが失敗したタイイングでキャッシュしてしまっている可能性もありえるなと。
なので、下記のコードをテーマの
functions.php
か My Snow Monkey プラグインに一時的に貼り付けてみて、正しいライセンスキーが画面に出力されるか確認してみてください。add_action( 'after_setup_theme', function() { $license_key = \Framework\Controller\Manager::get_option( 'license-key' ); if ( current_user_can( 'administrator' ) ) { var_dump( $license_key ); } // 認証のキャッシュを削除 $transient_name = 'snow-monkey-license-status-' . $license_key; delete_transient( $transient_name ); } );
ぱっとみた感じではページキャッシュの問題ではなさそうなので、とりあえずは地道に検証するしか無い気がします。無効なアクセスかどうかの処理をしている部分にログ出力を仕込んで、どのような値で処理が実行されているかを確認してみてください。
下記の変更を入れてからフォームの送信を実行することで、サーバーのエラーログにログが記録されます。
plugins/snow-monkey-forms/App/Model/Csrf.php
のpublic static function validate( $posted_token ) { if ( ! $posted_token ) { return false; } if ( ! preg_match( '|^[a-z0-9]+$|', $posted_token ) ) { return false; } $cookie_token = static::saved_token(); return ! is_null( $cookie_token ) && ! is_null( $posted_token ) && hash_equals( $cookie_token, $posted_token ); }
を
public static function validate( $posted_token ) { error_log( "validate:\n" ); error_log( $posted_token . "\n" ); if ( ! $posted_token ) { return false; } if ( ! preg_match( '|^[a-z0-9]+$|', $posted_token ) ) { return false; } $cookie_token = static::saved_token(); error_log( $cookie_token . "\n" ); return ! is_null( $cookie_token ) && ! is_null( $posted_token ) && hash_equals( $cookie_token, $posted_token ); }
に変更。
public static function validate_referer() { // phpcs:disable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $referer = isset( $_SERVER['HTTP_REFERER'] ) ? wp_unslash( $_SERVER['HTTP_REFERER'] ) : false; // phpcs:enable $homeurl = untrailingslashit( home_url( '/' ) ); return 0 === strpos( $referer, $homeurl ); }
を
public static function validate_referer() { error_log( "validate_referer:\n" ); // phpcs:disable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $referer = isset( $_SERVER['HTTP_REFERER'] ) ? wp_unslash( $_SERVER['HTTP_REFERER'] ) : false; error_log( $referer . "\n" ); // phpcs:enable $homeurl = untrailingslashit( home_url( '/' ) ); error_log( $homeurl . "\n" ); return 0 === strpos( $referer, $homeurl ); }
に変更。
—
あ、あと、Snow Monkey Forms のバージョンもお願いします!
♥ 0Who liked: No userヘッダーのサイトロゴは内部的には
the_custom_logo()
→get_custom_logo()
を使っているのですが、get_custom_logo()
の中にはget_custom_logo_image_attributes
というフィルターフックがあるみたいなのでこれも使えそうな気がします。 -
投稿者投稿