Home > プログラミング > セキュリティ Archive
セキュリティ Archive
GridView内のタグ
- 2006年10月25日 19:26
ASP.NET2.0からGridViewが追加されているので、DataGridからの置き換えをしているのですが...
現行プログラムをGridViewに置き換えると、BRタグなどのタグがそのまま表示されたりします。
というか、問題があるとするならば現行プログラムの方で、タグがそのまま表示されるってことはクロスサイトスクリプティングの脆弱性があるってことなので、GridViewが正しいのは間違いないんですが。
しかしながら、当面の問題として現行プログラムを移行しなければいけない訳で、ほうっておく訳にもいかないので調査してみました。
結果から言えば、BoundFieldを使用せずに、TemplateFieldを使用してItemTemplateの中で <%# DataBinder.Eval(Container.DataItem, "フィールド名") %> をするだけでタグが有効になりましたが。
クロスサイトスクリプティングみたいな基本的な脆弱性が残っているプログラムって、意外と多いなあと思う今日この頃。
- Comments: 0
- TrackBacks: 0
【ASP.NET】HyperLinkFieldでJavaScriptをリンクするとリンクが表示されない
- 2006年9月30日 12:36
タイトルに書いたとおり、HyperLinkFieldでJavaScriptをリンクするとリンクタグが表示されなくなってしまいます。(DataTextFieldは正しく表示されます)
恐らくはクロスサイトスクリプティング対策なんでしょうが、もう少しなんか方法があればいいんですが...
<asp:HyperLinkField DataNavigateUrlFields="Url" DataNavigateUrlFormatString="javascript:hoge({0})" DataTextField="Name" />
仕方がないので、TemplateFieldに置き換えたら問題なく動きましたが、やはり面倒ですね。
<asp:TemplateField>
<ItemTemplate>
<A id="ALinkFix" runat="server" href='<%# "javascript:hoge(" + DataBinder.Eval(Container.DataItem, "Url") + ")" %>'>
<%# DataBinder.Eval(Container.DataItem, "Name") %>
</A>
</ItemTemplate>
</asp:TemplateField>
- Comments: 0
- TrackBacks: 0