どうも皆さん、おはこんばんちわ。ho9tocraftです。
今回は「色々な意味でゆとらいず工房様に迷惑をかけてしまった疑惑のある話」について話します。
今回の話の場合、『Perl/CGI』に関して多少の知識もクソもない一般通過TRPGゲームマスターが話をするので、少し分からない話もあると思います。ご注意下さい。
ゆとシートⅡに「base64モード」の実装
これはゆとシートⅡ(自鯖設置版)のdevelop版をロリポップサーバーに設置し、かつあるキャラクターシートを公式鯖からコンバートしようとしたときに遭遇したバグによるものです。
ver.1.21.0頃のアップデート内容に
– [共通] シートの保存時において、Base64にエンコードして送信する、設置者向けのオプション(一部レンタルサーバーのWAF対策)
https://yutorize.fanbox.cc/posts/6037547
とあるのがそれです。
ゆとチャAdv.の「URLの『/./』」VS「WAF」問題
つい最近サーバーを移行しようとした際に遭遇、執筆時点のdevelop版にて解決された謎のバグです(本当に謎)。
多分ver.1.02あたりのアップデート内容に記載されるんじゃないかな、と思います。
WAFってなんだよ!?
WAFとは「Web Application Firewall」の略で、ウェブアプリケーション(ゆとシートⅡやゆとチャAdv.、WordPressなんかもそう)の脆弱性を悪用した攻撃からウェブアプリケーションを保護するセキュリティの一種…
なのですが。
コイツが強すぎるとゆとシートⅡやゆとチャAdv.が死にます。
死亡原因
たとえば「AAA or BBB and CCC」みたいな投稿をしたいとしましょう。
これが条件式に変換されちゃうんですよね。
よって、WAFが「これは攻撃だ!」と判断してブロックしてしまう、というわけです。WAFって怖いね。
ここから対策できる方法があるんですか?
結論から言えばあります。そうでなかったら現在もその不具合に悩まされているはずなので。
Base64という暗号化を用いてデータを保存し、そのデータをデコードして表示する、といった方法で解決出来るようです。
最後に
ゆとシートⅡ/ゆとチャAdv.の開発者であるゆとらいず工房様には感謝しかありません。素敵なツールをありがとうございました。


コメント