2016-11-14 6 views
1

私はmaxOccurs="unbounded"を見つけたXMLスキーマを持っています。グーグルでは、XMLスキーマを作成する安全な方法ではなく、バインドされていない代わりに特定の番号を使用するように勧められています。しかし、問題は私がそこで使う特定の妥当な番号を持っていないということです。そこに設定する特定の番号がないときに安全にする方法があります。XSDではmaxOccurs = "unbounded"が安全ではありませんか?

<sequence> 
    <element maxOccurs="unbounded" minOccurs="0" name="Application"  
      nillable="true" type="impl:Application"/> 
</sequence> 

答えて

3

XSDでmaxOccurs="unbounded"を使用して、本質的には何も問題はありません。

バッファオーバーランや特定のXMLソフトウェアの弱点の悪用を避けたいと思ったことがあれば、あなたは読んだことがあります。さらなる推測は価値がない。信頼性を評価できる具体的な基準を提供するか、まったく根拠のないようにあなたの懸念を取り除くかのどちらかです。

1

DDoS攻撃から保護するシステムには、送信できるデータの量を制限するものがあります。私は、XMLスキーマがそれを行うための適切な技術だとは思わない。

ほかには、有限のmaxOccurs値を使用することは非常に不十分です。たとえば、要素間に現れるコメントの数を制限する必要があり、XMLスキーマを使用してコメントや処理命令を制限する方法はありません。

着信文書のサイズを制限したい場合は、別の(おそらくもっと単純な)種類の防御が必要です。

0

私はこれがあなたが構築しているシステムに完全に依存していると思います。実装システムが何らかの無制限の「アプリケーション」要素(それが意味するものは何でも)に何らかの形で苦しんでいると思われる何らかの理由がある場合は、おそらく問題になるかもしれませんが、それ自体に本質的に間違っているものは何もありません。

XSDはシステムの特定のルールを定義する場所です。場合によっては特定のルールが適切である場合もあれば、危険な場合もあります。あなたの質問の限られた情報に基づいて、私は心配する特定の理由を見ることができません(もう一度:あなたは実装システムの実用的な結果がどのようなものかを考える必要があります)。

関連する問題