SSL でエラーを出さないおまじない(強化版)

ホーム フォーラム 管理者からのお知らせ SSL でエラーを出さないおまじない(強化版)

このトピックには22件の返信が含まれ、9人の参加者がいます。7 年、 6 ヶ月前 someone さんが最後の更新を行いました。

15件の投稿を表示中 - 1 - 15件目 (全23件中)
  • 投稿者
    投稿
  • #50009

    nanbu
    参加者

    こんにちは。

    SSL についてはいろんな事をやってきましたが、結局他のプラグインがSSL を考慮していないとエラーから抜け出す事ができません。そこでこの際、出力されるソース内のコンテンツのURI をまとめて書き換えてしまおうと考えました。最終的に書き換え切れていないURI をSSL 用のURI に書き換えてから出力します。

    この処方が有効であることはこちらの環境で検証済みなのですが、コードを見ていただいて分かるとおり出力バッファリングを操作しています。この操作が他のプラグインにどう影響を与えるか、また各サーバーでどの様に振舞うことになるのかはやってみなくては分からないといったところです。

    どうしてもSSL のエラーから抜け切れない方は是非お試しください。そして状況をフィードバックしていただけると幸いです。特に問題がなければ本体に組み込みたいと考えています。よろしくお願いいたします。

    下記のコードをテーマのfunctions.php に書き加えてください。それだけです。

    add_action('init', 'usces_ob_start');
    function usces_ob_start(){
    global $usces;
    if( $usces->use_ssl && ($usces->is_cart_or_member_page($_SERVER['REQUEST_URI']) || $usces->is_inquiry_page($_SERVER['REQUEST_URI'])) )
    ob_start('usces_ob_callback');
    }
    function usces_ob_callback($buffer){
    global $usces;
    $pattern = array('|(<[^<]*)href="'.get_option('siteurl').'([^>]*).css([^>]*>)|', '|(<[^<]*)src="'.get_option('siteurl').'([^>]*>)|');
    $replacement = array('${1}href="'.USCES_SSL_URL_ADMIN.'${2}.css${3}', '${1}src="'.USCES_SSL_URL_ADMIN.'${2}');
    $buffer = preg_replace($pattern, $replacement, $buffer);
    return $buffer;
    }

    #60554

    kami
    参加者

    kamiです。

    先日商品カテゴリ検索の件で投稿しました。

    『おまじない』を行うことで、SSL警告が出なくなりました。

    今現在は特に問題は起きておりません。

    SSL問題は非常に厄介なので助かります。

    ご対応ありがとうございます。

    さくらレンタルサーバー スタンダード

    wordpress 3.0.1

    welcart 7.3

    #60555

    nanbu
    参加者

    こんにちは、kami さん。

    早速のフィードバックありがとうございます。

    何か起きましたらまたご連絡お願いいたします。

    #60556

    kami
    参加者

    kamiです。

    アクセス解析用のプラグインを追加しましたところ

    SSL警告が出てしまいました。

     ・プラグイン名:WordPress.com Stats

    ソースを見たところSSLを考慮しているようでしたが

    ”$_SERVER”の値がとれておらず、常に”http”でscriptファイルを参照していました。

    今はソースを修正して対応しています。

    さくらでは”$_SERVER”の値がとれないという噂も。。。

    function.phpのhttp→httpsの上書きもこの部分だけは適用されていなかったので、プラグインと環境によってはやはり警告が出てしまうものがあるようです。

    以上、報告です。

    #60557

    nanbu
    参加者

    kami さん、ありがとうございます。

    おまじないは自分のドメインしか書き換えていませんので、他のサイトへ接続するURLに関しては無防備です。必要な場合は置換条件を追加することで対応できるかと思います。

    >さくらでは”$_SERVER”の値がとれないという噂も

    そうなんです。たぶんセキュリティーの関係なんでしょうが、取れないサーバーが有ります。”$_SERVER”を伏せるサーバーもあるようです。

    #60558

    jin
    参加者

    Xサーバでは、特に変化なく、IEで保護された項目と保護されていない項目がありますが続行しますか?でいいえを選択すると、welcartで取得している画像は×になります。ところどころ画像のurlにhttpsがついていてちゃんと表示されているのもあります。

    何故httpsありとなしがあるのか、見比べてみましたが、分かりませんでした。Xサーバではおまじないはあまり効き目がないようです。

    (追記)

    「このページにはセキュリティで保護されている項目とされていない項目があります」という警告がどうしてもなくなりません。

    画像はすべてhttpsつきにして対応しましたが、他にもhttpつきの項目があって(リンクなど)すべてhttpsにするのは困難です。何か解決策がありましたら教えていただきたくお願いします。

    サーバはXサーバです。welcartは0.7.3です。wordpressは3.0-jaです。

    #60559

    nanbu
    参加者

    こんにちは、jinさん。

    Xserver で検証してみましたが、問題なく変換されていることを確認しました。おまじないが間違いなく設置されているか確認してみてください。間違いなければ、他のプラグインでの影響がないかを確認してみてください。

    このおまじないはob_start を利用しています。

    変換対象は、自分のサイト内のスタイルシート、JavaScript、画像のULIです。

    #60560

    kami
    参加者

    kamiです。

    現在、上記で記述しましたショッピングサイトとは別に、ホームページを作成しています。

    そこで問い合わせの機能を使用させて頂いております。

    このHPでも「おまじない」を実践してみました。

    ところがプラグインの「Lightbox 2.0.2」が邪魔をして警告が出てしまいました。

    「Lightbox 2.0.2」は各ページ毎に使用を無効にできるので、お問合せページではlightboxを無効にしたところ、警告が出なくなりました。

    SSL で警告が出る Lightbox 2 と FancyBox の対処法

    上記はバージョンが違うせいか、内容が違っていました。

    やはりプラグインはやっかいですね・・・。

    さくらレンタルサーバー スタンダード

    wordpress 3.0.1

    welcart 7.3

    共有SSL

    テーマはwelcartデフォルト以外を使用しています。

    #60561

    nanbu
    参加者

    こんにちは、kami さん。

    対処法を書いた「Lightbox2」は作者: Rupert Morris(v2.9.2)です。

    いずれにしてもおまじないで警告が取れるはずなのですが。

    警告が出るページを見せていただければ原因が特定できるのではと思います。

    ページ毎に使用を無効にできる「Lightbox 2.0.2」というのは便利そうですね。

    #60562

    nano
    参加者

    はじめまして、nano といいます。

    nanbu さん、とても有益なプラグインの開発ありがとうございます。

    問題なく動いています。

    アイル infinitoPLUS

    wordpress 3.0.1

    共用SSL

    自作テーマ(usces内部はほとんどデフォルト)

    私の場合、ヘッダ内でGoogle jQueryとYUI CSSに直接リンクしていたことでセキュリティエラーが発生してました。

    いまのところエラー無しでカートも正常に動作しているようです。

    #60563

    nanbu
    参加者

    こんにちは、nano さん。

    フィードバックありがとうございます。

    何かありましたらまたよろしくお願いします。

    #60564

    mori
    参加者

    Google ChromeのSSL警告はデリケートで、Chromeの問題なのか、サイト自体の問題なのかわかりませんが、デフォルトのfunctions.phpではIEやFireFoxでは警告が出ないのに、Chromeでは警告が出るという状態が続いておりました。

    functions.phpにおまじないを追加すると、ChromeでもSSL警告が消えました。

    テスト環境

    hetemlサーバー

    共用SSL

    wordpress 2.9.2

    Welcart 0.8

    デフォルトテーマ

    #60565

    nanbu
    参加者

    こんにちは、mori さん。

    ご報告有難うございます。

    おまじないでもSSLの警告が取れない原因としてAPI の利用が考えられます。もし警告が取れない方はAPI を利用していないか確認してみてください。

    対処方法は、最初からjttps://にしておくか、SSL に対応していないAPI であるなら、SSLページではそれを利用しないように条件付で表示させると良いでしょう。

    #60566

    nanbu
    参加者

    こんにちは。

    おまじないの正規表現を修正しました。

    SSL警告が取れ切れていなかった方はこれをお試しください。

    最初のトピックを書き換えましたが、改めてここにもコードを書いておきます。

    add_action('init', 'usces_ob_start');
    function usces_ob_start(){
    global $usces;
    if( $usces->use_ssl && ($usces->is_cart_or_member_page($_SERVER['REQUEST_URI']) || $usces->is_inquiry_page($_SERVER['REQUEST_URI'])) )
    ob_start('usces_ob_callback');
    }
    function usces_ob_callback($buffer){
    global $usces;
    $pattern = array('|(<[^<]*)href="'.get_option('siteurl').'([^>]*).css([^>]*>)|', '|(<[^<]*)src="'.get_option('siteurl').'([^>]*>)|');
    $replacement = array('${1}href="'.USCES_SSL_URL_ADMIN.'${2}.css${3}', '${1}src="'.USCES_SSL_URL_ADMIN.'${2}');
    $buffer = preg_replace($pattern, $replacement, $buffer);
    return $buffer;
    }

    #60567

    thanks
    参加者

    お世話になっております。

    カートやメンバーページは、もともと、問題なくSSLとして動作しています。

    ところが、Contactform7 を利用したお問い合わせフォームを追加したところ、SSLの警告が表示されてしまいます。

    おまじないも試しましたが、効果がありません。

    システム設定のお問い合わせページのIDを登録しましたが、それでもだめでした。

    ページの末尾に出力される

    <script type=’text/javascript’ src=’http://***/wp-content/plugins/usc-e-shop/js/usces_cart.js’></script>

    だけが、HTTPSに書き換えられていません。

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

15件の投稿を表示中 - 1 - 15件目 (全23件中)

このトピックに返信するにはログインが必要です。