PDA

View Full Version : سوال در مورد امنيت كد زير



mohsen.nsb44
یک شنبه 02 خرداد 1389, 09:41 صبح
سلام من براي ذخيره فايل اگه از كد زير استفاده كنم از نظر امنيتي مشكلي نداره؟

sqldatasource1.insertcoman="insert into table1 (name,family) values ('"+textbox1.text+"','"+textbox2.text+"')";
sqldatasource1.insert();
اين كد از نظر امنيتي در چه حدي قرار داره ايا ميشه به راحتي با دستورات اس كيو ال هكش كرد؟
لطفا راهنمايي كنيد

ASKaffash
یک شنبه 02 خرداد 1389, 11:14 صبح
سلام
بله SQLInjection خواهد خورد :
در TextBox اول تایپ کنید :


','Hello')--

به این مثال دقت کنید :


Declare @Hack nvarchar(100)
Set @Hack=Char(39)+','+Char(39)+'Hello'+Char(39)+')--'
Declare @T1 nvarchar(50),@T2 nvarchar(50)
Set @T1=N'نام'+@Hack
Set @T2=N'فامیلی'
Declare @Cmd nvarchar(500)
Set @Cmd='insert into table1 (A1,A2) values ('+Char(39)+@T1++Char(39)++','+Char(39)+@T2+Char(3 9)+')'
Exec(@Cmd)

mohsen.nsb44
یک شنبه 02 خرداد 1389, 11:25 صبح
سلام
بله SQLInjection خواهد خورد :
در TextBox اول تایپ کنید :


','Hello')--

به این مثال دقت کنید :


Declare @Hack nvarchar(100)
Set @Hack=Char(39)+','+Char(39)+'Hello'+Char(39)+')--'
Declare @T1 nvarchar(50),@T2 nvarchar(50)
Set @T1=N'نام'+@Hack
Set @T2=N'فامیلی'
Declare @Cmd nvarchar(500)
Set @Cmd='insert into table1 (A1,A2) values ('+Char(39)+@T1++Char(39)++','+Char(39)+@T2+Char(3 9)+')'
Exec(@Cmd)

به نظر شما بهترين راه حل چيه يكي از دوستان استفاده از پارامتر هارو اشاره كردن ميشه در اين مورد يكم توضيح بدين

ASKaffash
یک شنبه 02 خرداد 1389, 11:39 صبح
سلام
راه های زیادی است مثلا :
1- فیلتر کردن کارکتر '
2-استفاده از SP و پارامترها را به SP پاس دهید (90% حملات با SP و بدون Dynamic SQL حل میشود)
ولی جا با جا تکنیک مبارزه با InJection متفاوت است

mohsen.nsb44
یک شنبه 02 خرداد 1389, 11:40 صبح
سلام
راه های زیادی است مثلا :
1- فیلتر کردن کارکتر '
2-استفاده از SP و پارامترها را به SP پاس دهید (90% حملات با SP و بدون Dynamic SQL حل میشود)
ولی جا با جا تکنیک مبارزه با InJection متفاوت است
چطور مي تونم در مورد sp اطلاعات جمع كنم نميشه يك مثال با توضيح كد ها برام بزنيد؟
فيلتر كردن كاراكتر ها چطوره؟ يه مثالم از اين مي زنيد لطفا

ASKaffash
یک شنبه 02 خرداد 1389, 12:24 عصر
سلام
باید بیشتر در مورد SQLServer آموزش ببینید :
http://barnamenevis.org/forum/showthread.php?t=106494