أخي الكريم بالنسبة للنوع Reflected وحسب ما هو واضح في الشيفرة الخاصة بك فالأمر بسيط فقط استخدم HtmlEncode أو UrlEncode لمنع أي سكربت أو مدخلات غير صحيحة قد تحدث في رابط الصفحة غبر Query String هكذا:
string x = Request.QueryString["id"] as string;
if (x != null)
{
Response.Write(Server.HtmlEncode(x));
}
- باستخدام UrlEncode:
protected void Page_Load(object sender, EventArgs e)
{
string destinationURL = "http://www.contoso.com/default.aspx?user=test";
NextPage.NavigateUrl = "~/Finish?url=" + Server.UrlEncode(destinationURL);
}
أما بالنسبة للنوع Stored نعم ما شرحته في الجواب الأول هو عن النوع Stored حيث تقوم باستدعاء التابع FilterText عند استخدام أي من قيم المدخلات -التي تم إدخالها في الحقول- ضمن جمل الاستعلام الخاصة بقاعدة البيانات كما في المثال التالي:
sql = "SELECT ID, AgentID, AgenBossID, CreationDate FROM MyTable WHERE ID = " + ((FiltterText(txtID.Text) == "") ? "0" : FiltterText(txtID.Text));