エッチな速報。 vBulletin の観察、または動的コンテンツのキャッシュの試み。 管理者とモデレーションの名前を変更する

09.12.2020

このことについて長い間書きたいと思っていましたが、なかなか実現できませんでしたが、このトピックについて短いメモを公開する機会が得られました。 そこで、ユーザーがホスティング サービスを選択する前に最初に確認すべき内容のリストを公開してみてはいかがでしょうか。 特に、vbulletin を使用する私たちにとってはそうです。 これらすべてを単に「推奨事項」と呼びましょう。 専門家がすでにすべてを理解していることは明らかなので、ここで説明する必要はありません。 ただし、初心者はシャッフルする必要があります。 不健全な傾向が見られるため、Vbulletin 4 の管理者は、自分のフォーラムが 5 ドルで共有ホスティングに取り組み、すべてがうまくいくことを望んでいます。 こんなことは二度と起こらないでしょう!

基本的なことは誰もが知っていますが、私もホストを探していたときにいくつか間違いを犯したので、いくつか見てみましょう。

その会社は過剰販売業者ですか?

皆さん、お願いですので、転売(オーバーセラー)されたホスティングは利用しないでください。 おそらく、あなたは長い間苦しむことになる大きな「脱穀場」の一部を与えられるでしょう。 しかし、ホスティングが 50 人の手を通じて再販されているとどうやって判断できるのでしょうか? ここに秘密はありません。わずか 5 ドルで、500 または 1500 GB のスペース (もちろんここでは誇張していますが、大したことではありません) と 100 TB の帯域幅が提供されます。 もったいないですよね? しかし、これはすべてでたらめであり、実際には 2 ~ 10 GB 以上は必要ありません ディスクスペース、 私を信じて。 また、特に最初の数日間は、50 ~ 200 GB の帯域幅は耳を超えます。

その会社は再販業者ですか?

ここでも十分な注意が必要です。 ほとんどの再販業者は夜間も営業する会社です。 彼らはお金をもらって、少し働いただけで、もう会えなくなるのです。 すべてのファイルと作業内容が失われます。 でも、これは必要ありませんよね? また、これらの会社のホスティング料金が気に入ったとしても、特定の会社がどのくらいの期間営業しているかを必ず確認してください。

データベースのサイズ制限!

これはとても 重要な点作業中の vbulletin を移行する予定がある場合。 さまざまなホスティング会社のオファーを調べてみましたが、ほとんどが 100MB を提供しています。 もちろん、最初はこれで十分ですが、フォーラムが成長するとすぐにこれでは不十分になり、VPS または専用サーバーに切り替える必要があります。

データベースへの同時接続の数。

ああ、そうそう、これは100%重要です。 これは、特に Vbulletin を使用する場合には非常に重要です。 時間が経つにつれて、同時接続は増加する一方だからです。 ほとんどの共有ホスティング会社は 10 ~ 250 を提供していますが、すべてはホスティングによって異なります。 テクニカルサポートに電話して、それについて尋ねてください。 ただし、すべての共有ホスティング サイトがこの情報を持っているか、共有してくれるわけではありません。

レビュー! これは良いことですか、それとも悪いことですか?

技術サポート。

ほとんどのホスティング プロバイダーは、24 時間年中無休のテクニカル サポートを提供しています。 電子メール、チケット、icq、skype、またはその他の方法で。 しかし、彼らはいつまであなたを助けてくれるでしょうか? 場合によっては、これが決定的な役割を果たします。

テクニカル サポートに電話して、特に夜間や朝の 5 時から 6 時などに、回答がどれくらいかかるかを確認してください。 そして、いくつかのオプションと電話とチケットを確認してください。 すでに答えがわかっている簡単な質問をする場合は、その応答時間を計算する必要があります。 わかった! わかりました。簡単な質問に対する答えをどれくらい待ったかを確認し、難しい状況で回答が得られるまでの時間を見積もってください。

有名な大手企業か、それとも未知の新興企業か?

原則として、ここでの選択はあなたの前にのみあり、古くて評判の良い会社ほど、価格は新しく設立された会社よりわずかに高くなります。 個人的には、すでに何らかの形で実績を上げている会社を選びます。 その理由を知りたいですか? 簡単です、一晩で大金を失う可能性があると想像してみてください 便利なファイルそしてデータベース。 プライバシー ポリシーについても同様であり、それが遵守されているかどうかを常に確認できるわけではありません。 データをコピーして、クローンサイトを作成できます。 このリストは延々と続きます。 まあ、あなたは私を理解しています:)

自分でフォーラムを運営している場合は、遅かれ早かれ、自分のフォーラムを保護することを考えなければなりません。結局のところ、攻撃者は眠っているわけではありません。 このトピックでは、(Habrowser ReaM の助けを借りて) フォーラムのセキュリティを強化するためのヒントのリストをまとめました。 興味がある? ハックへようこそ :)

それでは...始めましょう:

1) 行の最後まで更新しましょう (3.5.x、3.6.x、3.7.x)

説明:コメントはありません

なぜ?: Jelsoft は、新たな脆弱性を常に解決しています。 昨年のリークフォーラムに取り組みたい人はいないでしょう?

2) 管理パネルとモデレーションパネルの名前を変更します。

説明:管理パネルの名前を変更しますが、構成には、いかなる状況でも、名前を変更した管理パネルへのパスを書き込まないでください。 MOD の名前も変更しますが、脆弱性が低いため、すでに設定に登録されている可能性があります (これも望ましくありませんが)。 自分の目で見てください:)

なぜ?:管理パネルの名前を変更し、構成でパスを指定しない場合、管理パネルを見つけることがはるかに困難になり、XSS を適用するか、さらに悪いことになります。 欠点は次のとおりです。 - リンクを手動で編集しないと、プロファイルの編集とモデレータの追加が機能しなくなります。

3) .htaccess を管理パネルに配置します。

説明:
a) IP が静的である場合、
許可する、拒否するを命令する
全員から否定する
%your_IP% からの許可

B) 追加のパスワードも設定します。

なぜ?:管理パネルのパスワード保護を追加しても問題はありません。

4) ファイルとフォルダーを削除します。

説明:
a) ファイルを削除します。
/validator.php (利用可能な場合)
/checksum.md5 (利用可能な場合)
b) フォルダーを削除します。
/インストール/

なぜ?:ゼロバージョンの安全でないファイルによりファイルのリストが表示される可能性があり、インストールフォルダーは非常に有害です =)

5) アタッチメントとアバターを移動する

B) アバター -> ユーザー画像保存タイプ
アバターはデータベースに保存する必要がある

なぜ?: 3.5 行目、私の記憶が正しければ、画像への直接リンクが提供されていました。ホスティング設定が間違っていた場合、シェルがフラッドする可能性がありました。

6) フォルダーにアクセス許可を設定する

説明:ステップ 5 が完了したら、custom_* フォルダーは現在必要ないため、安全にその権限を 644 に設定できます (削除しても構いません)。 次に、指示に従って vBulletin をインストールした場合、/ (ルート) 内のすべてのフォルダーには 644 のアクセス許可が設定されているはずです。そうでない場合は、アクセス許可を 644 に設定します。

なぜ?:ハッカーがシェルを埋めることを困難にします。

7) 「HTML を許可」オプションを有効にすることは決してありません。

説明:コメントはありません。 なぜ HTML が必要なのでしょうか?
なぜ?:機会 XSS 攻撃機能が有効になっているとき。

8) .htaccess をインクルードフォルダーに配置します。

説明: 次の内容を含む .htaccess を include フォルダーに配置します。

命令の許可、拒否
全員から否定する

なぜ?:

  • シェルが何らかの理由でそこに浸水した場合、アクセスできなくなります。
  • もし彼らがあなたを拒否した場合、PHP インタプリタが落ちて Apache だけが残る可能性があります - そして Apache はあなたに読み取りを許可します phpファイル- したがって、/includes/ フォルダーからすべてのファイル (同じ config.php) を読み取ることができますが、これはあまり良いことではありません。

9) 次の .htaccess を、0777 属性を持つファイルが含まれるディレクトリにプッシュします。

ケルク_http://vbsupport.org/forum/member.php?u=30

説明:

RemoveHandler.phtml
RemoveHandler.php
RemoveHandler.php3
RemoveHandler.php4
RemoveHandler.php5
RemoveHandler.cgi
RemoveHandler.exe
RemoveHandler.pl
RemoveHandler.asp
RemoveHandler.aspx
RemoveHandler.shtml


注文の許可、拒否
全員から拒否

なぜ?:指定された拡張子を持つスクリプトは、この htaccess を持つディレクトリ内では使用できなくなります。

10) config.php を編集し、削除できないユーザーフィールドに管理者の ID を入力します。

説明:/includes/config.php。 プロファイルに必要な変更をすべて加えた後、管理者の ID を入力するだけです。
なぜ?:自分自身であっても、管理者プロファイルを再度変更する必要はありません。 必要な場合は、ファイルから ID を削除し、変更して返送します。 安全が第一です! :)

11) MOD/ハックを削除した後は、ダウンロードしたファイルも一緒に削除することを忘れないでください。

説明:コメントはありません
なぜ?:なぜサーバー上にそれが必要なのでしょうか? 余分なファイル? 必要なし...

12) Web サーバーのアクセス可能な場所にバックアップを保存しないでください。

説明: コメントはありません
なぜ?:バックアップの名前を知っている人なら誰でもダウンロードできるようになります。 もちろん、htaccess を追加することもできますが、それでもセキュリティ上の理由から、Web サーバーの到達範囲外でバックアップを作成してください。

13) 「ファイルインスペクター」プラグインをインストールします。

著者 - Ghost (http://www.vbsupport.org/forum/member.php?u=38422)

説明(引用):

古いスクリプトを調べているときに、この製品、File Inspector を見つけました。 これらは vBulletin 用のいくつかのモジュールであり、既存のファイルのリストをデータベースに保存し、それらのファイルが変更されているかどうかを随時チェックできます (ファイルごとにサイズ、所有者、アクセス権が保存されます)。 cron タスクは、見つかった不一致について管理者にメールで通知します。 比較のために、ファイル リストの複数の異なるコピー (リビジョン) をデータベースに保存できます (電子メール通知による自動検証は、最新のリビジョンでのみチェックされます)。 外観と利用可能な設定はスクリーンショットで確認できます。

インストール: インストールするには、アーカイブから 2 つの PHP ファイルをサーバーにアップロードし、「product-gfi.xml」ファイルから製品をインポートする必要があります。

更新: バージョンの更新は提供されていないため、新しいバージョンをインストールするには、まず以前のバージョンをアンインストールすることをお勧めします。

ZY この製品は、3.6.8 から 3.8.1 までのすべてのバージョンで正常に動作しました。 確かに、ナビゲーション バーのドロップダウン メニューへのリンクがさまざまな場所に追加されましたが、これらは些細なことです。


vbsupport.org からダウンロード

なぜ?: Webサイトでシェルを探す際に必須のものですが、事前にインストールしておく必要があります。

結果:

管理パネルにアクセスするのは非常に難しいため、管理パネルからシェルをアップロードすることもできます。 vB の脆弱性を利用してシェルをアップロードできますが、/includes にアップロードすると (一部のハッキングでは 777 を必要とするファイルがあります)、includes フォルダーではすべてのファイルから拒否されます。シェルは単に外部からアクセスできなくなります。 !

すべての手順を完了している場合は、残りのフォルダーのアクセス許可を 644 に設定できます。特に次の場合、アップロードは非常に困難になります。 正しい設定 chroot。 そして最後に、管理者自身がこっそりと行動し、XSS やトロイの木馬にさらされることからの保護を追加しました。

実際のところ、それだけです...これはハブレに関する私の最初のトピックなので、あまり激しく蹴らないでください:)

UPD: 「情報セキュリティ」に移動。

おそらく、vBulletin エンジンのフォーラムを何度も見たことがあるでしょう。 フォーラム自体はもう流行っていませんが、vBulletin は依然として最も人気のあるエンジンの 1 つです。 その最新 (5 番目) バージョンでは、管理者の生活を大きく損なう可能性のあるいくつかの脆弱性が発見されました。 この記事では、それらがどのように使用されるかを説明します。

最初の問題は、ユーザー データの不適切なフィルタリングです。 これは、匿名を希望した独立したセキュリティ研究者によって報告されました。 この脆弱性にはいくつかの制限がありますが、ターゲット システム上で任意のファイルを読み取り、任意のコードを実行できるため、重大ステータスに指定されています。

2 番目の脆弱性は TRUEL IT の研究者によって発見され、識別子 CVE-2017-17672 が与えられました。 これはエンジン内のデータ逆シリアル化の機能に関連しており、攻撃者がシステム上の任意のファイルを削除するために使用する可能性があります。

両方の問題を詳しく説明した完全なレポートが、SecuriTeam の Beyond Security プログラムの一環として公開されています。 脆弱性を実証するための PoC エクスプロイトもあります。 これらすべてを順番に見ていきましょう。

準備

サーバーとして WAMP ディストリビューションを使用しました。

ファイルの読み取り、コマンドの実行

したがって、最初の脆弱性の理由は、routestring パラメータを処理するときの不正なロジックにあります。これにより、攻撃者は include を介してディスク上の任意のファイルをインクルードし、そこにある PHP コードを実行することができます。

私たちのパスは最も重要なファイル、index.php で始まり、ここでアプリケーションの基本的な初期化が行われます。

/index.php
48: $app = vB5_Frontend_Application::init("config.php"); ... 60: $routing = $app->getRouter(); 61: $method = $routing->getAction(); 62: $template = $routing->getTemplate(); 63: $class = $routing->getControllerClass();

vB5_Frontend_Application::init メソッドを見てみましょう。

/includes/vb5/frontend/application.php
13: クラス vB5_Frontend_Application は vB5_ApplicationAbstract を拡張します 14: ( 15: public static 関数 init($configFile) 16: ( 17:parent::init($configFile); 18:19: self::$instance = new vB5_Frontend_Application(); 20: self::$instance->router = new vB5_Frontend_Routing(); 21: self::$instance->router->setRoutes();

ここで注目するのは setRoutes メソッドです。

47: パブリック関数 setRoutes() 48: ( 49: $this->processQueryString(); ... 54: if (isset($_GET["routestring"])) 55: ( 56: $path = $_GET["ルート文字列"];

$path 変数には、routestring パラメータからの userdata 値が含まれます。 フォーラム ページへのパスを渡すと、そのページが読み込まれます。



/test に合格したとしましょう。

変数を割り当てた後、行の先頭にスラッシュがある場合はそれを削除するコードが存在します。

/includes/vb5/frontend/routing.php
75: if (strlen($path) AND $path(0) == "/") 76: ( 77: $path = substr($path, 1); // $path = "test" 78: )
include\vb5\frontend\routing.php
83: if (strlen($path) > 2) 84: ( 85: $ext = strto lower(substr($path, -4)) ; 86: if (($ext == ".gif") OR ($ext == ".png") OR ($ext == ".jpg") OR ($ext == ".css") 87: OR (strto lower(substr($path, -3)) == ".js" )) 88: ( 89: ヘッダー("HTTP/1.0 404 が見つかりません"); 90: die(""); 91: ) 92: )

ご覧のとおり、このチェックは非常に奇妙です。 少なくとも、禁止されている拡張機能のリストがコードに直接書き込まれていると混乱を招きます。 そして一般に、拡張子が行末 (85 行目) から 4 文字を切り取ることによって得られるという事実そのものが不可解です。 一般に、gif、png、jsp、css、または js 拡張子を持つファイルを受信しようとすると、サーバーは 404 ページを返し、スクリプトの実行が停止します。 すべてのチェックに合格すると、callApi を使用して vB_Api_Route クラスの getRoute メソッドが呼び出されます。 ユーザーから提供された情報をもとに、適切なルートを検索します。

続きは会員限定です

オプション 1. 「サイト」コミュニティに参加して、サイト上のすべての資料を読む

指定された期間内にコミュニティのメンバーになると、すべての Hacker マテリアルにアクセスできるようになり、個人の累積割引が増加し、プロの Xakep スコア評価を蓄積できるようになります。

私はそれらが回転するいくつかの VPS を担当しています...通常は私の責任領域ではないため、そこで回転するものは回転し、適度に遅くなり、適度に動作します。 そして、そのうちの 1 つで特定のフォーラムが実行されていることが判明し、フォーラムの速度が低下し始めました。 そしてそれを解明したかったのですが...

ソース
  • vBulletin 3.8.x のフォーラム
  • サブドメイン forum.domain.com に移動しました
  • Nginx 1.1.13、php 5.3.x (fpm)
  • フォーラム以外には、このサーバー上では何も実行されていません。 ( これは重要です).
  • Mysql は別のサーバー上にあり、TCP/IP 経由で通信します。
背景
私はフォーラムで自分のために生き、気にせず、示しました XMトップ負荷は約 30 ~ 40 パーセントです。 そして、「X」の時間が来ると、負荷は 90% の平坦なプラトーに急上昇し、ピークはさらに高くなりました。これは、一般に、ブンブンという音ではありません。 DDOSの疑いは確認されていない。 ログには通常のワークロードが示されていました。 さて、リソースを愚かに増やす前に、何が起こっているのかを理解し、可能なものすべてをキャッシュしてみようという考えが浮かびました。
調査。 パート 1 - 女性の訪問者は何を求めていますか?
私はこのソフトウェアの思想や機能に詳しくなかったので、訪問者とサーバー間のログとトラフィックを分析することから問題の研究を始めました。 まず、フォーラム内のメッセージの添付ファイルがスクリプトによってのみ提供されていることを発見して驚きました。 添付ファイル.phpファイル自体はデータベースに保存できますが、 ローカルディスク、ただし、復帰はスクリプトを介してのみ行われます。 他には何もありません。 つまり、8 ~ 10 枚の写真を含むメッセージ スレッドごとに、PHP インタプリタが 8 ~ 10 回追加で動作します。 そしてこれはすべての訪問者に当てはまります。 添付ファイルを表示するためにこのフォーラムへの登録は必要ないため、添付ファイルはたとえば数日間キャッシュされる可能性があります。 次のようなもの:
location = /attachment.php ( 期限切れ; limit_req ゾーン=lim_req_1s_zone バースト=5; fastcgi_pass forum__php_cluster; /etc/nginx/fastcgi_params を含む; /etc/nginx/fastcgi_params_php-fpm を含む; fastcgi_cache forum_att__cache; fastcgi_ignore_headers キャッシュ コントロールの期限切れ Set-Cookie ; fastcgi_hide_header Set-Cookie; fastcgi_cache_key "$request_method:$http_if_modified_since:$http_if_none_match:$host:$request_uri:"; fastcgi_cache_use_stale 更新エラー ache_lock_timeout 2m ) および http セクションのどこかで宣言_att__cache: fastcgi_cache_path /var/キャッシュ/nginx/att レベル = 1:2 key_zone = forum_att__cache:4m max_size = 2g inactive = 2d;

私にとっての 2 番目の「啓示」は、フォーラムにアーカイブがあり、それが存在するだけでなく、リクエストのほぼ半分がそこから来ているということでした。 ページの外観によって、そのコンテンツをキャッシュすることもできます。
location /archive/ ( 有効期限は 10 日; limit_reqzone=lim_req_1s_zoneburst=2; location ~ \.css$ (有効期限は max; ) fastcgi_pass forum__php_cluster; fastcgi_index Index.php; include /etc/nginx/fastcgi_params; include /etc/nginx/fastcgi_params_php -fpm; fastcgi_param SCRIPT_FILENAME $document_root/index.php; fastcgi_cache_cache; fastcgi_hide_header キャッシュ制御の有効期限が切れます - Cookie "$request; _method:$http_if_modified_since:$http_if_none_match:$host: $request_uri:";更新エラーのタイムアウト無効なヘッダーhttp_500; fastcgi_cache_valid 2d; ) と http セクションに移動します: fastcgi_cache_path /var/cache/nginx/arc tables=1:2 key_zone=forum_arc__cache:4m max_size=2g inactive=2d; 同時に、DDOS 攻撃から身を守りましょう。
「$psUID」キーの作成については後ほど説明します。

調査。 パート 2 - vBulletin での承認
フォーラム訪問者の観点から見ると、訪問者は登録ユーザーまたはゲストのいずれかになります。 しかし、「来た、歩いた、ログインした、歩いた、ログアウトした、歩いた」状況をブラウザ内の Cookie の出現と消滅という観点から観察すると、まったく異なる状況が展開します。 したがって、ドメインとそのサブドメインの Cookie をクリアし、HTTPfox を開いて何が起こるかを確認します。
HTTP/1.1 200 OK セット Cookie: PHPSESSID=cdme9rrptft67tbo97p4t1cua5; 期限切れ=2012 年 2 月 22 日水曜日 15:04:12 GMT。 パス=/; ドメイン=.ドメイン.com Cookie の設定: bblastvisit=1329059052; 期限切れ=2013 年 2 月 11 日月曜日 15:04:12 GMT; パス=/; ドメイン=.ドメイン.com セットクッキー: bblastactivity=0; 期限切れ=2013 年 2 月 11 日月曜日 15:04:12 GMT; パス=/; Domain=.domain.com Set-Cookie: uid=XCuiGU831OyC8VLqAx/QAg==; 期限切れ=37 年 12 月 31 日木 23:55:55 GMT; ドメイン=.ドメイン.com; パス=/
UIDそして PHPSESSIDすべては明らかです - これらは nginx とオプションがインストールされた php インタープリターの陰謀です session.auto_start、しかし残りはフォーラム上の活動の監視者です。 しかし、vBulletin のメイン セッション Cookie はまだ観察されていません。 今後については、vBulletin は標準の PHP セッションを使用せず (より正確には、ALMOST は使用しません)、独自のセッションを維持し、その識別子は Cookie に保存されます。 bbセッションハッシュ。 したがって、ユーザーはログインしましたが、セッションは存在しません。つまり、ユーザーはセッションがなければ匿名です。 この場合、フォーラムへのリンクには 2 つのタイプがあります (これは、ページ上のすべてのリンクを意味し、このようなリンクと他のようなリンクではありません)。
forum.domain.com/forumdisplay.php?s=12b66e447be52ebc84ab16d3f39626fb&f=69
forum.domain.com/forumdisplay.php?f=69
最初のタイプのリンクをたどった場合、フォーラムからの次の応答はセッション Cookie になりますが、2 番目のタイプのリンクをたどった場合はセッション Cookie になりません。 2 番目の回答を持つセッションから Cookie を受け取らなかった場合は、最初のタイプのリンクに遭遇するまで、セッションレスで落ち着きなくフォーラムを歩き回ることができます (リンクの出現パターンはわかりませんでした)。またはログインしたい場合。 ログインに成功すると、セッション Cookie が何らかの方法で到着します。 ログインする前にゲストがセッションに対して匿名だった場合、そのセッションはそのゲストに置き換えられます。 次のようになります。
HTTP/1.1 200 OK セット Cookie: bbsessionhash=85745bc6110db5221e159087bf037f24; パス=/; ドメイン=.ドメイン.com; HTTPのみ
ログイン後、セッションは「安定」し、リンクのリープフロッグはありません。 ログアウト手順も同様です。既存のフォーラム Cookie がすべて削除され (設定されていないものも含めて)、新しい (「匿名」) セッションの Cookie が書き込まれます。
HTTP/1.1 200 OK Set-Cookie: bbsessionhash=deleted; 期限切れ=1970 年 1 月 1 日木曜日 00:00:01 GMT; パス=/; Domain=.domain.com Set-Cookie: bblastvisit=deleted; 期限切れ=1970 年 1 月 1 日木曜日 00:00:01 GMT; パス=/; Domain=.domain.com Set-Cookie: bblastactivity=deleted; 期限切れ=1970 年 1 月 1 日木曜日 00:00:01 GMT; パス=/; Domain=.domain.com Set-Cookie: bbthread_lastview=deleted; 期限切れ=1970 年 1 月 1 日木曜日 00:00:01 GMT; パス=/; Domain=.domain.com Set-Cookie: bbreferrerid=deleted; 期限切れ=1970 年 1 月 1 日木曜日 00:00:01 GMT; パス=/; Domain=.domain.com Set-Cookie: bbuserid=deleted; 期限切れ=1970 年 1 月 1 日木曜日 00:00:01 GMT; パス=/; ドメイン=.ドメイン.com クッキーの設定: bbパスワード=削除; 期限切れ=1970 年 1 月 1 日木曜日 00:00:01 GMT; パス=/; Domain=.domain.com Set-Cookie: bbthreadedmode=deleted; 期限切れ=1970 年 1 月 1 日木曜日 00:00:01 GMT; パス=/; Domain=.domain.com Set-Cookie: bbstyleid=deleted; 期限切れ=1970 年 1 月 1 日木曜日 00:00:01 GMT; パス=/; Domain=.domain.com Set-Cookie: bblangid=deleted; 期限切れ=1970 年 1 月 1 日木曜日 00:00:01 GMT; パス=/; ドメイン=.ドメイン.com セットクッキー: bbsessionhash=3d0bdc5dbe8dabae361deebe8f6048d2; パス=/; ドメイン=.ドメイン.com; HTTPのみ
つまり、出力では匿名の人 (ゲスト) が得られますが、100% セッションが行われます。
その結果、フォーラム ソフトウェアの観点からは、 そして HTTP ヘッダーには 3 つのタイプのユーザーがいます。 セッションなしのゲスト, ゲストとセッション, ログインした訪問者。 さらに、nginx レベルでは、2 番目と 3 番目を区別することは非常に困難です。

どの Cookie がどのように訪問者とサーバー間を移動するかを理解したので、動的コンテンツのキャッシュの問題に取り組むことができます。 ご存知のとおり、nginx の fastcgi バックエンドからの応答をキャッシュする機能は、ngx_http_fastcgi_module モジュールに組み込まれています。 これを行うには、http セクションでグローバルにキャッシュ ゾーンを登録し、目的の場所にキーを登録する必要があります。また、条件付き静的コンテンツ (画像、アーカイブ) の場合、キャッシュ用のキーは若干の追加を加えた URI と見なすことができます。キャッシュのダイナミクスについては、ユーザーも考慮する必要があります。
fastcgi_cache_key "$request_method:$http_if_modified_since:$http_if_none_match:$host:$request_uri:$cookie_bbsessionhash:";
ゲストとログイン ユーザーの両方を満足させることができましたが、実際には、訪問者は他人のキャッシュのコンテンツを受け取るようになりました。 「真の」ダイナミクスのキャッシュを無効にする必要がありました。 判決が最終的なものでないことを願っています。

しかし この情報無駄ではない。 これに基づいて、訪問者の IP アドレスだけでなくステータスにも基づいてリクエストの頻度を制限するキーを生成できます。
$psUID "anon" を設定します。 $psUCL "anon" を設定します。 if ($cookie_bbsessionhash) ( set $psUID "$cookie_bbsessionhash"; set $psUCL "user"; ) if ($psUCL = "anon") ( set $psUID "anon:$remote_addr"; )
すべての場所を説明する前に、この構成のフラグメントを nginx 構成のサーバー セクションに配置します。 その結果、セッションを持つユーザーの元のキーと、セッションを持たない訪問者 (検索クローラーなど) の IP アドレスに基づくキーを受け取ります。

結果
これらの取り組みの結果、仮想マシンの全体的な負荷は、90% のプラトーから 40% のソーロードまで減少し、最大 80% のスパイクが発生しました。

VBulletin は、フォーラム管理者が必要とするすべてのものを提供します。 ポッドキャスティング、マルチクオートのサポート、コミュニティとグループへの分割、ユーザー評価 - これらはすべて基本構成で利用でき、サードパーティの拡張機能をインストールすることで拡張できます。

このエンジンは、特にアドオンやサードパーティのスクリプトをインストールした後、サーバーに高い負荷をもたらします。 したがって、 通常動作通常のホスティングを購入する必要があります。名刺 Web サイトの速度を低下させることになる、1 セント単位の無料オファーやジュニア プランのことは忘れてください。 トラフィックが増えるとサーバーの負荷も大きくなるため、帯域幅を確保する必要があります。 できれば無制限。

Vbulletin は大規模なプロジェクトを作成するように設計されているため、ホスティング費用を節約することもできません。 このエンジンはハッキングやスパム攻撃に耐性があるため、訪問者は安心できます。 モデレータは必要ですが、スレッドを消去するためのものではありません。 広告投稿、ただし、ディスカッションを管理するためです。

基本的なセットアップについて 外観、組み込みのデザイナーを使用してページを追加および変更できます。 それにアクセスするには、以下のサイトにログインする必要があります。 アカウント管理者。 ユーザー名の横にスイッチがあり、これをオンに設定する必要があります。 パスワードを再入力すると、サイトがデザイン モードで開きます。

デザイナーでは、ページを追加し、そのページに要素を移動して、そのページへのリンクをサイトのメイン メニューに追加できます。 これはすべて、ビジュアル デザイナーと同じように簡単に実行できます。 ただし、インターフェイスのグローバルなカスタマイズにはプログラミング スキルが必要であり、そのスキルは管理パネルで適用できます。

サーバー インフラストラクチャと対話したくないユーザーのために、開発者は vBulletin Cloud ソリューションを提供します。 その助けを借りて、エンジンのダウンロード、インストール、構成の段階を省略して、すべての管理機能を備えた完全に機能するフォーラムを入手できます。 基本的に、プランを購入した後は、訪問者を開始する前に、ニーズに合わせてサイトをカスタマイズするだけです。

デザイン

エンジンの公式 Web サイトでは、基本デザイン用のテーマをダウンロードできます。 これらはサイトに簡単にインストールでき、ウェブマスターの希望に応じて変更できます。 スタイルを管理するには 管理パネル広告セクションがあります。 その中で次のことができます。

  • サイトの背景を変更または追加します。
  • 背景の代わりに画像を追加します。
  • スタイルファイルを編集します。

基本的な変更はコンストラクターを通じて行うことができます。 たとえば、ロゴを変更するには、[ヘッダー] タブを開いて適切なファイルをアップロードする必要があります。 [ナビゲーション バー] タブでは、サイトのメイン メニューを管理できます。他のページへのリンクの追加と削除、順序の変更、名前の割り当てなどを行うことができます。

これにはプログラミングのスキルは必要ありません。 基本的なセットアップ外観は、これまでフォーラム エンジンを使用したことがない初心者のウェブマスターでも行うことができます。

検索エンジン最適化 (SEO)

CMS vBulletin には、実行するための特別なモジュールがありません。 検索エンジンの最適化。 ただし、フォーラムで活動する必要がないという意味ではありません。 サイトには、ロボットのページのトピックを決定するために使用される H1 タグが必要であるという要件が適用されます。 インデックス作成を設定するには、robots.txt ファイルを編集する必要があります。ファイルを正しくフォーマットする方法に関するヒントは、vBulletin のサイト専用フォーラムで見つけることができます。

検索エンジンの最適化は、個々の機能の有効化または無効化に大きく関係しています。 たとえば、コードを保存するにはジャンプ メニューを無効にする必要があります。 このような小さなことはたくさんありますが、専門のフォーラムでしか見つけることができません。vBulletin のヘルプにはそのようなものはありません。

SEO プラグインを使用して新しい機能を追加できます。 最も有名なのはVBSEOです。 これを利用すると、要件に合わせてフォーラムを最適化できます。 検索エンジン: リダイレクトの設定、重複の削除、インデックス作成からの除外 個別のページ。 主な欠点は、VBSEO によってサーバーに追加の負荷が発生することです。これは CMS にとってすでにかなり大きな負荷です。

関税

毎年更新が可能な永久ライセンスの料金は 250 ドルです。 この金額で、エンジンのすべての機能を利用できます。

  • 組み込みアプリケーション: フォーラム、グループ、投票、ブログ。
  • 検索エンジン最適化ツール。
  • 専門的なサポート。
  • 柔軟なインターフェース設定。
  • すべての参加者用のコントロール パネル: 管理者、モデレーター、ユーザー。
  • ユーザー管理ツール。

250 ドルは最終価格ではありません。 このお金で購入できるのは、エンジンを生涯使用する権利だけです。

  • 引き続きアップデートを受信するには、毎年 209 ドルを支払う必要があります。 開発者は有料アドオンも提供しています。
  • サイト全体からフッターのブランドを削除するには、169 ドルの 1 回限りの料金がかかります。
  • 追加の電話サポートまたはチケット サポートは、月額 49 ドルまたは年間 329 ドルです。
  • 専門家による取り付けまたはエンジンのアップグレード - 1 回限りの料金は 149 ドルです。

フォーラムを小さな画面でも見栄えよくしたい場合は、Mobile Pack を購入できます。 ライセンスの費用は 399 ドル、更新の費用は年間 359 ドルです。 別途 モバイル版 199ドルかかります。 これがないと、フォーラムは通常コンピュータでのみ使用できます。

vBulletin Cloud を選択すると、ブロンズ、シルバー、ゴールドの 3 つのプランが利用可能になります。 それらはすべて以下を提供します:

  • 自動更新 現在のバージョンシステム。
  • vBulletin 用に最適化されたサーバーを使用します。
  • ニーズに合わせて利用可能なディスク容量を変更します。
  • 自動作成バックアップコピー。

最小プランの料金は月額 19.95 ドル (年払いの場合は 14.99 ドル) です。 25 GB の帯域幅、無料サポート、無料ドメインを提供します。 これは、トラフィックが少ない小規模なフォーラムに最適なソリューションです。

シルバーの料金は月額 39.95 ドル (年払いの場合は 29.99 ドル) で、75 GB の帯域幅が提供され、チケット システムによるサポートも提供されます。 このプランは、交通量が中程度で成長するコミュニティに適しています。

最も高いプランはゴールドで、月額 74.95 ドル (年間請求の場合は 59.99 ドル) です。 帯域幅 200 GB、 無料サポート電話で。 最適なソリューション大規模なフォーラム向け。

メリットとデメリット

VBulletin は非常に長い間機能してきたため、開発されたユーザー コミュニティ、詳細なドキュメント、テーマ、テンプレート、拡張機能などの関連資料が多数あります。 他の利点の中でも次の点に注目してください。

  • 豊富なデザインテーマ。
  • プラグインとモジュールをインストールすることで機能を拡張でき、その数はすでに 1000 を超えています。
  • 簡単なツールコンテンツの作成とサイトの管理。
  • シンプルなデザインのカスタマイズ。
  • ユーザーによる写真やビデオの迅速な公開。
  • 最適化 モバイルデバイス対応するパッケージを購入すると。

以前に別のフォーラム エンジンを使用したことがある場合は、VBulletin 管理パネルに慣れるまでに長い時間がかかります。 それは悪いことではありません。ただ普通ではなく、時には不便なだけです。

VBulletin は常に異なります 高負荷特に複数の拡張機能をインストールする場合は、サーバーに接続します。 ホスティングを選択する際にはこれを考慮し、より強力なプランを購入するために予算に含める必要があります。 コストは非常に高く、絶対にお金を節約することはできません。これは、訪問者が殺到するとフォーラムが「崩壊」するという事実の危険性を伴います。

開発チームの変更後、エンジンの安全性について多くの疑問が生じました。 最も安定したバージョンは 3.8 のままです。 4 番目と 5 番目のバージョンは常にセキュリティ更新プログラムを受信して​​おり、製品のリリース後に開発者がホールにパッチを当てていることを示しています。