No.3692, No.3691, No.3690, No.3689, No.3688, No.3687, No.3686[7件]
ロリポップのWAF対策について
.htaccessを使用して除外設定する事が出来たので報告させて頂きます。
※頭に「spd」と「ent」がつくサーバだと、この対策はできないようです。
参考サイト
PHPやCGIでプログラムの記述変更をしたところ403errorが表示されます – ロリポップ!レンタルサーバー
https://support.lolipop.jp/hc/ja/articles/360048375814
シグネチャで除外設定する
コードの確認は、WAF設定のログ参照から確認する必要があります。
また私の環境ではてがろぐで投稿しWAFでエラーが出た場合、
1つ目のコードを除外設定した後にもエラーが発生しましたが、
ログ参照し、2つ目のコードも除外設定する事で回避出来ました。
なので、複数のコードを除外する必要があるようです。
コード例
# AAA-11,BBB-12を確認したコードに変更
SiteGuard_User_ExcludeSig AAA-11
SiteGuard_User_ExcludeSig BBB-12
IPアドレスで除外設定する
IPアドレスが固定なら、この方法が楽かもしれません。
コード例
# カッコ内のxxx.xxx.xxx.xxxをご自身のIPアドレスに変更
SiteGuard_User_ExcludeSig ip(xxx.xxx.xxx.xxx)
この2つのどちらかを.htaccessに記述すれば、
/etc/abcdのような文字列でも問題なく投稿できました。
ロリポップをお使いで403エラーにお困りの場合は、お試しください。
.htaccessを使用して除外設定する事が出来たので報告させて頂きます。
※頭に「spd」と「ent」がつくサーバだと、この対策はできないようです。
参考サイト
PHPやCGIでプログラムの記述変更をしたところ403errorが表示されます – ロリポップ!レンタルサーバー
https://support.lolipop.jp/hc/ja/articles/360048375814
シグネチャで除外設定する
コードの確認は、WAF設定のログ参照から確認する必要があります。
また私の環境ではてがろぐで投稿しWAFでエラーが出た場合、
1つ目のコードを除外設定した後にもエラーが発生しましたが、
ログ参照し、2つ目のコードも除外設定する事で回避出来ました。
なので、複数のコードを除外する必要があるようです。
コード例
# AAA-11,BBB-12を確認したコードに変更
SiteGuard_User_ExcludeSig AAA-11
SiteGuard_User_ExcludeSig BBB-12
IPアドレスで除外設定する
IPアドレスが固定なら、この方法が楽かもしれません。
コード例
# カッコ内のxxx.xxx.xxx.xxxをご自身のIPアドレスに変更
SiteGuard_User_ExcludeSig ip(xxx.xxx.xxx.xxx)
この2つのどちらかを.htaccessに記述すれば、
/etc/abcdのような文字列でも問題なく投稿できました。
ロリポップをお使いで403エラーにお困りの場合は、お試しください。
No.3684です。
ありがとうございます!試してみます!
ありがとうございます!試してみます!
てがろぐを、ロリポップのサーバでお使いの方々はぜひお読み下さい。
➡ ロリポップのサーバで投稿後に「403 Forbidden」になる場合の対策(@FAQ・豆知識ページ)
ほぼ意味のない制限だと思うので、ロリポップ側がこの制限をやめてくれるのが一番だと思うのですけども。これはサーバ側の制限なので、CGI側からはどうしようもありません。投稿本文内に /etc/abcd のような文字列を単独で含めた場合はもちろん、 example.com/folder/etc/abcd みたいな「URLの途中」にあるのもダメですし、CSSソースを掲載しようとして、 background-image: url('../folder/etc/abcd.img'); のような感じで書く場合もダメなようです。
一応、回避方法として上記リンク先に2案挙げてはいますが、もっと良さげな回避方法(または解決するための設定方法等)を発見された方は、ぜひお知らせ下さい。
🍰Re:3689◆直ってましたね。良かった。
➡ ロリポップのサーバで投稿後に「403 Forbidden」になる場合の対策(@FAQ・豆知識ページ)
ほぼ意味のない制限だと思うので、ロリポップ側がこの制限をやめてくれるのが一番だと思うのですけども。これはサーバ側の制限なので、CGI側からはどうしようもありません。投稿本文内に /etc/abcd のような文字列を単独で含めた場合はもちろん、 example.com/folder/etc/abcd みたいな「URLの途中」にあるのもダメですし、CSSソースを掲載しようとして、 background-image: url('../folder/etc/abcd.img'); のような感じで書く場合もダメなようです。
一応、回避方法として上記リンク先に2案挙げてはいますが、もっと良さげな回避方法(または解決するための設定方法等)を発見された方は、ぜひお知らせ下さい。
🍰Re:3689◆直ってましたね。良かった。
> ハンバーガーのダウンロードリンク
今行ったら直ってて、DLできるようになってました。
今行ったら直ってて、DLできるようになってました。
3685です。なるほど、ご回答ありがとうございました。
ただコメントは日本語で入れているし、ファイル冒頭に@charset "utf-8";も入れてはいるんですよね……。
とにかく今回はcontentの内容をUnicodeに変換しておくことにしました。
>>3686 さんもありがとうございました。
ただコメントは日本語で入れているし、ファイル冒頭に@charset "utf-8";も入れてはいるんですよね……。
とにかく今回はcontentの内容をUnicodeに変換しておくことにしました。
>>3686 さんもありがとうございました。
ショートケーキ食べたい! ないけど。(´・ω・`)
🍰Re:3683◆スキンが増えてくれるのはたいへん嬉しいです。(╹◡╹) ハンバーガーのダウンロードリンクが切れているっぽいですね
🍰Re:3684◆今のところ、「内側スキン管轄の文字列」を「外側スキン管轄の位置」に持ってくる方法がないので、公式の記法では無理なのですが、もしOGPを出力される設定にしているなら、以下のJavaScriptを書くことで、og:titleの中身をtitleに変えることはできます。
<script>
let ogtitle = document.querySelector('meta[property="og:title"]').getAttribute("content");
document.title = ogtitle;
</script>
上記のスクリプトを、body要素内のどこか(どこでも)か、head要素内で「title要素や[[OGP]]の記述よりも後」の位置に書けば、og:titleとして出力されている文字列が、そのままページタイトルとしても使われます。
og:titleとして何を取得するかは、管理画面の[設定]→[補助出力]→【OGP+Twitter Cardの出力】→[▼OGPの設定]→「og:title」で選択できます。
なお、OGPを出力しない設定にしたい場合や、og:titleで設定できる選択肢よりももっと細かく出力内容を決めたい場合には、以前にNo.3293さんが解説して下さった方法( https://10prs.com/view/57 )を使うのが良いと思います。(そちらの方が出力内容が柔軟で、処理される状況が限定されていて無駄がないので望ましそうです。単純に記述量を短くしたければ先のソースだと2行で済むので楽ではありますが。^^;)
🍰Re:3685◆てがろぐ側では文字コードの変換をしていない上に、CSSファイルの中身には一切触れていないので、文字化けするなら概ねブラウザ側の問題だと思います。で、No.3686さんご指摘のように contentプロパティの値に多言語文字を使う場合には、Unicodeのコードポイントを16進数で指定する必要があるようですね。私もいま初めて知ったんですが。before疑似要素で「カテゴリ」と書きたい場合は、
content: '\30AB\30C6\30B4\30EA';
のように書くとうまくいきます。No.3686さんがご紹介下さっているサイトの変換ツールを使うと良いです。
なお、MDNの解説には、
🍰Re:3686◆解説ありがとうございます!(╹◡╹)ノ
🍰Re:3683◆スキンが増えてくれるのはたいへん嬉しいです。(╹◡╹) ハンバーガーのダウンロードリンクが切れているっぽいですね
🍰Re:3684◆今のところ、「内側スキン管轄の文字列」を「外側スキン管轄の位置」に持ってくる方法がないので、公式の記法では無理なのですが、もしOGPを出力される設定にしているなら、以下のJavaScriptを書くことで、og:titleの中身をtitleに変えることはできます。
<script>
let ogtitle = document.querySelector('meta[property="og:title"]').getAttribute("content");
document.title = ogtitle;
</script>
上記のスクリプトを、body要素内のどこか(どこでも)か、head要素内で「title要素や[[OGP]]の記述よりも後」の位置に書けば、og:titleとして出力されている文字列が、そのままページタイトルとしても使われます。
og:titleとして何を取得するかは、管理画面の[設定]→[補助出力]→【OGP+Twitter Cardの出力】→[▼OGPの設定]→「og:title」で選択できます。
なお、OGPを出力しない設定にしたい場合や、og:titleで設定できる選択肢よりももっと細かく出力内容を決めたい場合には、以前にNo.3293さんが解説して下さった方法( https://10prs.com/view/57 )を使うのが良いと思います。(そちらの方が出力内容が柔軟で、処理される状況が限定されていて無駄がないので望ましそうです。単純に記述量を短くしたければ先のソースだと2行で済むので楽ではありますが。^^;)
🍰Re:3685◆てがろぐ側では文字コードの変換をしていない上に、CSSファイルの中身には一切触れていないので、文字化けするなら概ねブラウザ側の問題だと思います。で、No.3686さんご指摘のように contentプロパティの値に多言語文字を使う場合には、Unicodeのコードポイントを16進数で指定する必要があるようですね。私もいま初めて知ったんですが。before疑似要素で「カテゴリ」と書きたい場合は、
content: '\30AB\30C6\30B4\30EA';
のように書くとうまくいきます。No.3686さんがご紹介下さっているサイトの変換ツールを使うと良いです。
なお、MDNの解説には、
ラテン文字以外は Unicode エスケープシーケンスを使用してエンコードする必要があります。と書いてあるんですが、Unicodeエスケープシーケンスというのは \u +16進数 で表記する方法なので、微妙に違いますね。^^; その方法だとうまくいきませんでした。(^_^;;; せっかく(世界中の文字をそのまま表せる)UTF-8を使っているにもかかわらず「エスケープせよ」と言う仕様にするのは思想的におかしい気がしますので、そのうち改善されるのではないかとは思いますが。
この文字化けが発生している際はcssファイル内の他の日本語文字列(たとえばフォント指定など)も同様に文字化けしています。ということは、ブラウザがCSSファイルの文字コードの認識に失敗している、ということですから、CSSファイルの文字コードを明示できれば良いのかもしれませんけども。
- CSSファイルの1行目に @charset "utf-8"; と書いておいたり、
- CSSファイルの先頭付近に /* これは○○のスタイルシートで云々 */ みたいな日本語のかな漢字交じり文を書いておくなどして、
🍰Re:3686◆解説ありがとうございます!(╹◡╹)ノ
>>3685
日本語をそのまま記述すると文字化けすることがありますがブラウザの仕様です。てがろぐは関係ないです。
回避するにはUnicodeで記述すればOKです。
参考記事:beforeやafter疑似要素のcontentプロパティで日本語の文字化けを回避する方法
日本語をそのまま記述すると文字化けすることがありますがブラウザの仕様です。てがろぐは関係ないです。
回避するにはUnicodeで記述すればOKです。
参考記事:beforeやafter疑似要素のcontentプロパティで日本語の文字化けを回避する方法