「Help:テンプレートの制限」の版間の差分

m
メディアウィキ→MediaWiki(正式名)
(制限値を越えると引数が無視され、ページは自動的に[[:Category:{{MediaWiki:Post-expand-template-argument-category}}]]に追加されます。)
m (メディアウィキ→MediaWiki(正式名))
{{DEFAULTSORT:てんふれとのせいけん}}{{HJ:h|Editor toc ja}}
ウィキペディアの使用しているソフトウェアである[[Help:メディアウィキMediaWiki|メディアウィキMediaWiki]]には、[[Help:テンプレート|テンプレート]]呼び出しやテンプレートの代入展開によって'''ページに読み込まれるデータ量を制限'''するためのパラメータがいくつかあります。このページでは、なぜ、そしてどのようにこの制限が用いられているかについて解説しています。
 
== 概要 ==
メディアウィキMediaWikiでは、ウィキテキスト(ウィキソース)をもとに[[HTML]]ページが生成されますが、読み込みデータについては[[構文解析]]の一種([[再帰下降構文解析]])を使用しています。ウィキテキストは「[[プリプロセッサ]]」を用いて「ツリー」と呼ばれるデータ構造に変換され、このツリーを用いてHTMLソースが生成されます。
 
構文解析の過程では、生成されるページの複雑性を把握するためにいくつかのカウンターが使用されます。カウンターは解析開始時点でゼロに設定され、解析中に該当するプロセスがあると数値が計上されていきます。カウンターには上限値が設定されており、上限値を越えるとテンプレートの展開や関数の動作が停止されます。
 
極端に長いページや[[Help:テンプレート|テンプレート]]をたくさん呼び出しているような複雑なページは解析に時間がかかります。このことは利用者にとって不便なだけでなく、処理不可能なほど巨大なデータをメディアウィキMediaWikiに解析させることで[[DoS攻撃]]の手段として悪用される可能性もあります。このような攻撃を予防し、ページの読み込みが常識的なスピードで行われることを保証するために、このような制限が設定されています。読み込みデータの制限は、2006年8月より導入されました。2008年2月から新しいプリプロセッサが導入され、制限の方法が変更されました([[meta:Migration to the new preprocessor]]参照)。
 
== 制限がおこりやすい事例 ==