ブログ内検索

プログラミング教材開発
大阪府高槻市原地区で肥料教室を開いています
 

SOY CMSで表示直前で画像のリサイズ表示を行う

/** Geminiが自動生成した概要 **/
SOY CMSでサイト表示を高速化するために、表示直前にサーバ側で画像リサイズを行う方法を紹介しています。Google PageSpeed Insightsで低評価を受けた画像サイズの問題を解消するため、サムネイルプラグインではなく、SOY CMSの隠し機能を活用。具体的には、カスタムフィールドに画像パスを入力し、imgタグのsrc属性に`im.php?src=[画像パス]&width=[幅]`を指定することで、動的にリサイズされた画像を表示。従来のHTMLのwidth属性による縮小表示よりもパフォーマンスが向上し、PageSpeed Insightsのスコアも改善。記事では、設定変更前後の具体的なコード例やスクリーンショットを交えながら解説。リサイズ処理はJPEG、PNG、GIFに対応し、作業フローを簡略化しつつサイト高速化を実現。次回、CSSや画像のキャッシュ設定について解説予定。

 

夏に咲く花と厚い葉

/** Geminiが自動生成した概要 **/
夏に咲く厚い葉の花の名前を知りたい。多肉質の葉は乾燥地帯や海岸で見かけることが多く、蒸散を防ぐため葉を厚くしていると考えられる。気孔から中心までの距離を長くすることで、水ストレスの影響を低減し、体内の水分を保持する。この花は日本の多湿な環境でも元気に咲いている。一体、この花の名前は何だろう?

 

インストーラーで再インストール後にサイトを復元

/** Geminiが自動生成した概要 **/
SOY CMSのインストーラによる再インストール後、サイトを復元する方法です。まず、再インストール前にサイトのソースコードからサイトID(例: /site/files/ の"site"部分)を確認しておきます。次に、インストーラで再インストールする際、インストール先ディレクトリを既存のものと異なる名前に変更します。インストール完了後、初期管理者を作成し、「サイトの復元」ではなく「サイトの作成」を選択します。ここで、事前に確認しておいたサイトIDを入力してサイトを作成します。サイトIDが正しければ、既存のファイル群が使用され、サイトが復元されます。最後に、元の管理画面URL(例: /cms/admin)で再インストールを行い、以前のデータベースに接続できないようにすることでセキュリティ対策を行います。データベース接続設定ファイル(例: mysql.db)を復旧すれば、元のアカウントも復元可能です。

 

ポップコーンは爆裂するトウモロコシ

/** Geminiが自動生成した概要 **/
ポップコーンは、爆裂種のトウモロコシを油で加熱することで作られる。加熱によって内部の水分が膨張し、胚乳(食用部分)も膨らむ。著者はポップコーンを見て、講義でテストに出ると言われたことを思い出した。ポップコーンは、トウモロコシの爆裂種であるため、加熱すると内部の水分が膨張し、外側の皮が破裂することであの独特の形になる。これは胚乳の粘性が高い品種だからこそ、爆裂しても破裂せずに形を保てるためである。トウモロコシには様々な種類があり、著者はテスト対策で丸暗記したことを懐かしく思い出している。

 

SOY CMSでインストーラを削除せずにいたらどうなるか?

/** Geminiが自動生成した概要 **/
SOY CMSのインストーラを削除しないと、再インストールが可能になり、サイトデータが消去される危険性がある。攻撃者は用意したデータベース情報で再インストールし、初期管理者権限を奪取できる。管理画面URLが判明していれば、インストーラ経由でサイトを初期化・乗っ取りが可能。他CMSでもインストーラが残っていれば同様の危険があるため、インストール後は必ず削除する必要がある。

 

枝達の水の吸い上げ事情

/** Geminiが自動生成した概要 **/
線路沿いの過酷な環境で逞しく生きる草は、上部に枝を集中させている。成長著しい枝の葉は薄緑色で、盛んに蒸散を行うため、根からの水の吸い上げも活発だ。しかし、下の葉は元気がない。枝への水分の集中が原因で、下の葉まで行き渡らないのだろうか。それとも、枝が成長したため、下の葉の養分を回収し枯れようとしているのか。あるいは、茎を直射日光から守るための防御策なのか。いずれにせよ、この草の生存戦略の一端が垣間見える。

 

SOY CMS/ShopでPHPモジュールに使用の制限を設けました

/** Geminiが自動生成した概要 **/
SOY CMS/Shopのセキュリティ強化のため、テンプレートエディタとPHPモジュールでのPHP実行に制限が加わりました。PHPの使用は、`user.config.php`で`SOYCMS_ALLOW_PHP_SCRIPT`を`true`にすることで許可されます。 PHPモジュールはさらに`SOYCMS_ALLOW_PHP_MODULE`を`true`にすることで利用可能になります。これらの設定により、テンプレートやモジュールでPHPコードの実行を制御し、セキュリティリスクを軽減します。アップデートはGitHubから入手可能です。

 

みなを抑えこむように脇芽

/** Geminiが自動生成した概要 **/
線路沿いの背の高いキク科の草は、上部で枝分かれする。頂芽優勢が弱く、他の草丈を越えたところで脇芽を出し、周囲を覆うように葉を広げている。これは、強風への抵抗力を高めるためと考えられるが、頭でっかちな形状は折れやすいようにも見える。周りの草が支えになる可能性もあるが、周囲の状況に応じて脇芽を出すことから、頂芽優勢はオーキシンの抑制のみでは説明できないと考えられる。

 

水田を見て、イネが選抜された訳を想像する

/** Geminiが自動生成した概要 **/
水田のイネを見て、かつての先生が語った話を思い出す。歴史の教科書では、農民はコメをあまり食べられなかったとされるが、先生はイネの栽培効率の高さから反論した。イネは水田で雑草抑制が可能で、肥料も少なくて済む。窒素固定能力も持ち、収量も高い。栽培に適さない理由がない限り、イネを選ぶはずだと主張した。実際、農村部でのコメ消費量は多かったという。優れた特性を持つイネの原産地は中国大陸とされ、野生の状態はどのようなものだったのかと想像を膨らませる。

 

CMSに不正にログインした後、何をする?

/** Geminiが自動生成した概要 **/
SOY CMSに不正ログイン後、ファイルマネージャからのPHPアップロードは不可だが、フロントコントローラ(index.php)に悪意あるPHPコードを埋め込み可能。これにより、サイト閲覧時に勝手にメール送信などの踏み台攻撃が可能になる。対策はindex.phpの書き込み権限を外すこと。SOY ShopのテンプレートやPHPモジュールも悪用されうる。

 

当サイトをHTTP/2対応して表示の爆速化してみた

/** Geminiが自動生成した概要 **/
Let's Encryptの証明書更新を自動化するため、CertBotを導入した。以前の方法は使えなくなったため、公式サイトの手順に従い、snapd経由でCertBotをインストール。`certbot certonly --apache`コマンドで証明書を取得し、Apacheの設定を自動更新。 cronで`certbot renew`を定期実行することで自動更新を実現。`--dry-run`オプションでテストも可能。以前の`letsencrypt-auto`コマンドは非推奨となったため、CertBotへの移行が必須。

 

発芽という難所をみんなで乗り越えて

/** Geminiが自動生成した概要 **/
いただいた変化アサガオの種は全て発芽したが、双葉の状態にばらつきが見られる。双葉が全くない株が一つ、なかなか開かない株、ねじれの強い株、表面が波打つ株など様々だ。特に、双葉が開かない株は開く兆しはあるものの、まだ双葉は開いていない。これらの双葉の異常は、生育に影響を与える可能性がある。特に、双葉が開かない株は、将来的に最も変化の大きい花を咲かせるかもしれないと予想される。

 

SOY CMSに総当り攻撃を仕掛けてみる。その4

/** Geminiが自動生成した概要 **/
Go言語で書かれたSOY CMSへの総当り攻撃スクリプトを改良し、CSVファイルからIDとパスワードを読み込むように変更した。これにより、コードの可読性が向上し、辞書を使い回せるようになった。 実行結果から、指定のIDとパスワードでログイン成功を確認。今後の課題として、メモリ効率の改善、対象サイトURLの指定、ログイン成功時の判定処理などが挙げられている。

 

陰イオン交換容量AEC

/** Geminiが自動生成した概要 **/
土壌中には陽イオン交換容量(CEC)だけでなく、陰イオン交換容量(AEC)も存在する。AECは一部の粘土鉱物、特に火山灰由来のアロフェン表面のOH<sub>2</sub><sup>+</sup>が陰イオンを保持する。しかし、AECは値が小さく、腐植などで増加せず、土壌改良の影響を受けにくい。アロフェン添加でAECは向上するが、土壌分析項目にAECが含まれないことから、実用的には重要視されていないと考えられる。

 

捻れた集合花は下を一律で下を向く

/** Geminiが自動生成した概要 **/
ネジバナは、クローバーに囲まれた草原で、小さいながらも目立つ花を咲かせる。集合花で、すべての花が下向きに咲くのが特徴。訪れる昆虫の種類は不明だが、周囲にクローバーが多いことから、ハチやチョウ、アリなどが考えられる。マメ科のクローバーは、ハチとチョウしか蜜を吸えないという記述もある。ネジバナの花の形状や下向きの向きが、どのような昆虫を誘引する役割を果たすのかは、観察が必要である。

 

SOY Shopの消費税別表示モジュールで税込通常価格と税込セール価格のタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの消費税別表示モジュールに、税込通常価格と税込セール価格を表示するタグが追加されました。これにより、セール価格がお得かどうかを税込価格で比較可能になります。 追加機能は、SOY CMSフォーラムかGitHubで公開されているパッケージからダウンロードできます。消費税別表示モジュールを使用しているユーザーは、税込価格表示で顧客に分かりやすい価格表示が可能になります。

 

SOY CMSのブログで記事表示順番号(通し番号)を出力させたい

/** Geminiが自動生成した概要 **/
SOY CMSのブログで記事の表示順番号(通し番号)を出力する方法を紹介します。記事一覧を出力するブログテンプレートで、`<div>この記事は何記事目?→<strong><!-- soy:id="index" --></strong>1<strong><!-- /soy:id="index" --></strong>記事目</div>`のように`soy:id="index"`を記述することで、記事の表示順番号が出力されます。これはSOY2HTMLのHTMLListクラスの機能を利用しています。HTMLListには最初/最後の記事用のタグや、特定の条件に一致する記事用のタグなども用意されています。

 

東福寺塔頭天得院の桔梗たち

/** Geminiが自動生成した概要 **/
東福寺塔頭天得院は、様々な種類の桔梗が鑑賞できることで知られています。特に珍しいのは白と八重咲きの桔梗です。一般的な青色の桔梗に加え、白い桔梗、八重咲きの青い桔梗、そして白の八重咲き桔梗も存在します。訪れた際には、庭園いっぱいの桔梗の中でも、これらの珍しい桔梗は庭園の外に位置していました。八重咲きの青い桔梗は残念ながら時期を逃してしまい、しおれた状態でしたが、白の八重咲き桔梗は満開で、その美しい姿を拝むことができました。来年は、青い八重咲き桔梗の開花時期に合わせて再訪し、その姿を鑑賞したいと考えています。

 

SOY CMSに総当り攻撃を仕掛けてみる。その3

/** Geminiが自動生成した概要 **/
Go言語で書かれたコードを用いて、SOY CMSへの総当たり攻撃を試行。パスワード候補の配列を定義し、ループ処理でログインを試みる。一致するパスワードが見つかった場合、処理を中断し「ログイン成功」とID、パスワードを表示する。今回は"********"でログイン成功。このコードはパスワード候補を増やすことで、複雑なパスワードでも突破可能。しかし、SOY CMS側では複数回ログイン失敗するとエラーが表示される対策が取られていることが確認された。

 

発芽という最初の難所を乗り越えて

/** Geminiが自動生成した概要 **/
蒔いた変化アサガオの種が発芽した。発芽したのは5粒中3粒。うち2粒は双葉がなく、親の変異が強かった可能性を期待させる。残りの1粒は通常の双葉で、丸い花が咲きそう。少ない母集団のため断定はできないが、変化アサガオ栽培の季節が始まり、今後の成長に一喜一憂する日々が始まった。

 

SOY ShopにEC CUBE2.4系のログインチェックを導入しました

/** Geminiが自動生成した概要 **/
EC-CUBE2.4系からSOY Shopへの移行時に、顧客のパスワードをそのまま利用できるようログインチェック機能を導入。EC-CUBEとSOY Shopのパスワード暗号化方式の違いを考慮し、SOY Shop側でEC-CUBEの暗号方式を適用する処理を追加。暗号化パスワードにスラッシュの有無でEC-CUBEかSOY Shopかを判別。EC-CUBE2.4.4以前のバージョンに対応しており、顧客がパスワードを変更すればSOY Shopの方式に自動更新されるため、特別な切り替えは不要。将来的には2.11.1以降のバージョンにも対応予定。修正版はフォーラムまたはGitHubから入手可能。

 

カボチャも強い

/** Geminiが自動生成した概要 **/
ヒルガオ科の植物は、強靭な生命力で飢饉を救えるとまで言われていますが、カボチャも強い植物です。放置していても広がり、巻きひげで他の植物を縛り付けて生育を抑え込むほどです。ヒルガオ科のように茎を巻き付けたり、カボチャのように巻きひげを使ったりと、植物は巻き付くことで強さを発揮するようです。

 

SOY Shopで顧客属性を一括で設定できるページを作成してみた

/** Geminiが自動生成した概要 **/
SOY Shopの顧客属性を一括変更できる機能が追加されました。顧客一覧画面で対象顧客を選択し、追加したい属性値を入力して登録すれば、選択した顧客の属性に値が一括追加されます。また、削除したい属性にもチェックを入れて削除ボタンをクリックすれば、選択した顧客の属性値を一括削除できます。この機能はGitHub上のSOY Shopパッケージで利用可能です。

 

ヒルガオ科の強さに頼る

/** Geminiが自動生成した概要 **/
ヒルガオ科の植物は非常に強い。蔓で他の植物に巻き付いて成長し、アサガオは品種改良にも利用された。中でもサツマイモは荒れ地でも育つほどで、不定根と脇芽の発生が旺盛なため挿し木で簡単に増やせる。しかし、遺伝的多様性が低いため病気に弱い欠点も持つ。さらに、根などに共生する窒素固定細菌のおかげで、空気中の窒素を利用できるため、肥料分の少ない土地でも生育できる。ヒルガオ科の植物は、繁殖力と環境適応力の高さで、その強さを示している。

 

SOY CMSに総当り攻撃を仕掛けてみる。その2

/** Geminiが自動生成した概要 **/
Go言語でSOY CMSへの総当り攻撃コードを改良した。前回はトークンチェックで攻撃が無効化されたため、今回はトークン取得とセッションキー保持の処理を追加した。具体的には、ログインページからトークン値を抽出し、自作のCookieJarを用いてセッションキーを保持することで、正規のログインと同様にトークンを送信できるようにした。この改良により、辞書攻撃が可能になった。 最後に、管理画面URLの特定の容易性と攻撃のしやすさを指摘し、URLを複雑にする、IDを辞書攻撃されにくいものにするなどの対策の必要性を訴えている。

 

白詰草の上は気持ちいい

/** Geminiが自動生成した概要 **/
シロクローバは、茎が地面を這うように伸びる匍匐性を持つため、地面を覆うように密生し、芝生のような景観を作り出す。この特性は、土壌の流出を防ぎ、雑草の抑制にも効果的。繁殖も匍匐茎から根を出し、新たな株を形成する栄養繁殖によって行われ、容易に増殖する。一方で、匍匐茎が地表を覆うため、他の植物の生育を阻害する可能性もある。また、シロクローバはマメ科植物特有の根粒菌との共生関係を持ち、窒素固定を行う。これにより、土壌に窒素を供給し、自身の生育だけでなく周囲の植物の成長も促進する。この窒素固定能力は、農業における緑肥としても利用される。

 

SOY CMSに総当り攻撃を仕掛けてみる。その1

/** Geminiが自動生成した概要 **/
SOY CMSへの総当たり攻撃を試行する記事。Go言語でログインを試みるコードを作成し、IDとパスワードを固定で送信、ログイン失敗を確認。本来は辞書データを用いて繰り返し実行する計画だったが、SOY CMSのログインフォームにトークンのチェックがない事を発見。GitHubで管理しているコードにトークンチェックを追加し、攻撃を阻止した。


Powered by SOY CMS  ↑トップへ