HDIV (Http Data Integrity Validator)

WebAppSecのMLで知ったのですが、HDIVというStrutsのextensionがあるそうです。

HDIVには色々な機能があるようですが、

などが挙げられています。

実際に触っていないので詳細はわかりませんが、ASP.NETのViewState、EnableEventValidation、validateRequestなどに発想が似ていると思いました。フレームワークは、ASP.NETの世界に近づいていくんでしょうかね(単にHDIVの作者がASP.NET好きなだけかもしれませんが)。

確かに、ASP.NETは進んだプラットフォームだと思います。私も初めてASP.NETに触れたときには、こりゃすげーと驚いたもんでした。ただ同時に、余りにブラックボックス的だし、色んなものを型にはめようとする窮屈さも感じたのでした。

例えば、上記の「完全性」に書いた機能では、ラジオボタンの選択値によって、プルダウンの選択肢を自動で変更するようなJavaScript実装をしていた場合、サーバ側で「攻撃者がプルダウンの値を改竄した!」と勘違いしそうです*1

そういうところでも、やたらと自由なHTML/JavaScriptの世界と、型にはめようとする世界とのミスマッチというか、何とも言えないモヤモヤした気持ちの悪い感じを受けてしまうのでした。

*1:ASP.NETのEnableEventValidationでは、そのような問題が生じうるようです。