この質問は、セキュリティの脅威に関するものです。以下の使用法で、クライアント側で選択された DropDownList の値が変更され、サーバー側に影響を与えることができるのだろうか?
ここで使用法(aspx定義)
<asp:DropDownList AutoPostBack="true" ID="dropDownListDrawingArtists" CssClass="DropDownArtists"
runat="server">
</asp:DropDownList>
サーバー側の充填
if (IsPostBack == false)
{
if (srLang == "tr")
{
dropDownListDrawingArtists.Items.Add("Çizen Artist Filtresi: Bütün Çizen Artistler");
}
else
{
dropDownListDrawingArtists.Items.Add("Drawing Artist Filter: All Drawing Artists");
}
DataSet dsDrawingArtists = DbConnection.db_Select_Query("select DrawingArtist,COUNT(PokemonId) as Pokecount from tblPokedex group by DrawingArtist order by Pokecount desc,DrawingArtist asc");
for (int i = 0; i < dsDrawingArtists.Tables[0].Rows.Count; i++)
{
dropDownListDrawingArtists.Items.Add(dsDrawingArtists.Tables[0].Rows[i]["DrawingArtist"].ToString());
}
if (Session["FilterByArtist"] != null)
{
dropDownListDrawingArtists.SelectedIndex = Convert.ToInt32(Session["FilterByArtist"].ToString());
}
}
そして、ポストバックでの最終的な使用法
if (dropDownListDrawingArtists.SelectedIndex > 0)
{
srFilterByDrawingArtist = " and DrawingArtist='" + dropDownListDrawingArtists.SelectedItem.ToString() + "'";
Session["FilterByArtist"] = dropDownListDrawingArtists.SelectedIndex.ToString();
}
ご覧のとおり、SQL クエリで直接使用しています。私はグーグルクロームで自分自身をテストしました。dropDownListDrawingArtists の値を変更し、ポストバックを行いました。サーバー側の値は影響を受けませんでした。念のために
答えてくれてありがとう
asp.net 4.0 C# 4.0