سلام
من توی صفحه جستجوم 2 تا مقدار رو میگیرم از کاربر که یکیش DropDownList هستش که لیست شهرهای دارای تورهای تعریف شده در دیتابیسمه.یکیم یک تکس باکس هستش که کلمه ی مورد جستجو رو میگرده که اگه مقدار هم وارد نشه فقط لیست تورهای شهر انتخاب شده درDropDownList رو نشون میده.
میگن که در بخش جستجوی تور من مشکل امنیتیSQL injection وجود دارد ولی متاسفانه من بلد نیستم رفعش کنم ممنون میشم کمکم کنین
این کدای مربوط به دکمه جستجوم
protected void btnSearch_Click(object sender, EventArgs e) { GridView2.EmptyDataText = "جستجو نتیجه ای در بر نداشت ، لطفا جستجو را با گزینه های بیشتری انجام دهید"; if (txtName.Text.Trim().Length > 0) { SqlDataSource2.SelectCommand = "SELECT * FROM [tProducts] WHERE (fCodeGroup = '" + DropDownList1.SelectedValue.Trim() + "' ) and (fName LIKE '%" + txtName.Text.Trim() + "%' ) "; } else { SqlDataSource2.SelectCommand = "SELECT * FROM [tProducts] WHERE (fCodeGroup = '" + DropDownList1.SelectedValue.Trim() + "' ) "; } }
شما برای جلوگیری از حملات باید پارامتر دهید کنید
کد شما الان نا امن هست
سلام من کدام رو به صورت زیر اصلاح کردم ولی خطا میده.میتونید بگید چیکار باید انجام بدم؟؟
protected void btnSearch_Click(object sender, EventArgs e) { GridView2.EmptyDataText = "جستجو نتیجه ای در بر نداشت ، لطفا جستجو را با گزینه های بیشتری انجام دهید"; if (txtName.Text.Trim().Length > 0) { //SqlDataSource2.SelectCommand = "SELECT * FROM [tProducts] WHERE (fCodeGroup = '" + DropDownList1.SelectedValue.Trim() + "' ) and (fName LIKE '%" + txtName.Text.Trim() + "%' ) "; //select * from tproducts where fcodegroup=@fcodegroup and fname like @fname SqlDataSource2.SelectCommand = "select * from tProducts where fCodeGroup=@fCodeGroup and fname like @fname"; SqlDataSource2.SelectParameters.Clear(); SqlDataSource2.SelectParameters.Add("@fCodeGroup", DropDownList1.SelectedValue.Trim()); SqlDataSource2.SelectParameters.Add("@fname", txtName.Text.Trim()); } else { //SqlDataSource2.SelectCommand = "SELECT * FROM [tProducts] WHERE (fCodeGroup = '" + DropDownList1.SelectedValue.Trim() + "' ) "; SqlDataSource2.SelectCommand = "select * from tProducts where fCodeGroup=@fCodeGroup"; SqlDataSource2.SelectParameters.Clear(); SqlDataSource2.SelectParameters.Add("@fCodeGroup", DropDownList1.SelectedValue.Trim()); } }
اینم خطا
SqlDataSource1.SelectParameters.Add("userId", userId.ToString()); SqlDataSource1.SelectCommand = "SELECT items.name, items.id FROM items INNER JOIN users_items ON items.id = users_items.id WHERE (users_items.user_id = @userId) ORDER BY users_items.date DESC"
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)