PDA

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



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

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

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

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

شما راه رو براي SQL Injection باز گذاشتيد ، توصيه ميشه كه از Parameter استفاده كنيد . در مورد SQL Injection جستجو كنيد .

موفق باشيد

mohsen.nsb44
یک شنبه 02 خرداد 1389, 09:49 صبح
شما راه رو براي SQL Injection باز گذاشتيد ، توصيه ميشه كه از Parameter استفاده كنيد . در مورد SQL Injection جستجو كنيد .

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

Mostafa_Dindar
یک شنبه 02 خرداد 1389, 09:51 صبح
ميشه نحوه استفاده از پارامتر رو توضيح بدين و حد الامكان يك مثال بزنيد بازم ازتون شكر مي كنم

اگر شما كمي جستجو كنيد من از شما متشكر ميشوم :لبخندساده:



C#
protected void btnSubmit_Click(object sender, EventArgs e)
{
SqlConnection connection = null;
try
{
FileUpload img = (FileUpload)imgUpload;
Byte[] imgByte = null;
if (img.HasFile && img.PostedFile != null)
{
//To create a PostedFile
HttpPostedFile File = imgUpload.PostedFile;
//Create byte Array with file len
imgByte = new Byte[File.ContentLength];
//force the control to load data in array
File.InputStream.Read(imgByte, 0, File.ContentLength);
}
// Insert the employee name and image into db
string conn = ConfigurationManager.ConnectionStrings ["EmployeeConnString"].ConnectionString;
connection = new SqlConnection(conn);

connection.Open();
string sql = "INSERT INTO EmpDetails(empname,empimg) VALUES(@enm, @eimg) SELECT @@IDENTITY";
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.Parameters.AddWithValue("@enm", txtEName.Text.Trim());
cmd.Parameters.AddWithValue("@eimg", imgByte);
int id = Convert.ToInt32(cmd.ExecuteScalar());
lblResult.Text = String.Format("Employee ID is {0}", id);
}
catch
{
lblResult.Text = "There was an error";
}
finally
{
connection.Close();
}

}
VB.NET
Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
Dim connection As SqlConnection = Nothing
Try
Dim img As FileUpload = CType(imgUpload, FileUpload)
Dim imgByte As Byte() = Nothing
If img.HasFile AndAlso Not img.PostedFile Is Nothing Then
'To create a PostedFile
Dim File As HttpPostedFile = imgUpload.PostedFile
'Create byte Array with file len
imgByte = New Byte(File.ContentLength - 1) {}
'force the control to load data in array
File.InputStream.Read(imgByte, 0, File.ContentLength)
End If
' Insert the employee name and image into db
Dim conn As String = ConfigurationManager.ConnectionStrings("EmployeeConnString").ConnectionString
connection = New SqlConnection(conn)

connection.Open()
Dim sql As String = "INSERT INTO EmpDetails(empname,empimg) VALUES(@enm, @eimg) SELECT @@IDENTITY"
Dim cmd As SqlCommand = New SqlCommand(sql, connection)
cmd.Parameters.AddWithValue("@enm", txtEName.Text.Trim())
cmd.Parameters.AddWithValue("@eimg", imgByte)
Dim id As Integer = Convert.ToInt32(cmd.ExecuteScalar())
lblResult.Text = String.Format("Employee ID is {0}", id)
Catch
lblResult.Text = "There was an error"
Finally
connection.Close()
End Try
End Sub

mohsen.nsb44
یک شنبه 02 خرداد 1389, 10:01 صبح
شما راه رو براي SQL Injection باز گذاشتيد ، توصيه ميشه كه از Parameter استفاده كنيد . در مورد SQL Injection جستجو كنيد .

موفق باشيد
دوست عزيز من در مورد SQL Injection يكسري جستجو كردم حالا اين سوال رو خدمتتون دارم كد درج فقط در صفحه admin كه مدير سايت مي باشد وجود دارد كه براي ورود به ان از كنترل لوگين استفاده شده در وب سايت كاربر اجازه دسترسي به اين صفحه يا درج هيچ چيزي را ندارد. با اين حال باز هم استفاده از اين كد خطر ناك است؟

Mostafa_Dindar
یک شنبه 02 خرداد 1389, 10:08 صبح
دوست عزيز من در مورد SQL Injection يكسري جستجو كردم حالا اين سوال رو خدمتتون دارم كد درج فقط در صفحه admin كه مدير سايت مي باشد وجود دارد كه براي ورود به ان از كنترل لوگين استفاده شده در وب سايت كاربر اجازه دسترسي به اين صفحه يا درج هيچ چيزي را ندارد. با اين حال باز هم استفاده از اين كد خطر ناك است؟


بستگي به اين دارد كه صفحه Admin شما چقدر Secure هست . ولي اگر از امنيت دسترسي به اون صفحه اطمينان داريد اگر چه كسي ممكن است كسي شما رو حك نكند ولي باز هم بهتر است كه از Parameter استفاده كنيد ، چرا وقتي كه راه امني وجود دارد ، از راه نا امن برويد و خواب راحتي نداشته باشيد ؟

در صورتي كه از كنترل لوگين به صورت پيش فرض استفاده كرده باشيد نيازي به Authentication شما ندارد .

mohsen.nsb44
یک شنبه 02 خرداد 1389, 11:11 صبح
اگر شما كمي جستجو كنيد من از شما متشكر ميشوم :لبخندساده:



C#‎
protected void btnSubmit_Click(object sender, EventArgs e)
{
SqlConnection connection = null;
try
{
FileUpload img = (FileUpload)imgUpload;
Byte[] imgByte = null;
if (img.HasFile && img.PostedFile != null)
{
//To create a PostedFile
HttpPostedFile File = imgUpload.PostedFile;
//Create byte Array with file len
imgByte = new Byte[File.ContentLength];
//force the control to load data in array
File.InputStream.Read(imgByte, 0, File.ContentLength);
}
// Insert the employee name and image into db
string conn = ConfigurationManager.ConnectionStrings ["EmployeeConnString"].ConnectionString;
connection = new SqlConnection(conn);

connection.Open();
string sql = "INSERT INTO EmpDetails(empname,empimg) VALUES(@enm, @eimg) SELECT @@IDENTITY";
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.Parameters.AddWithValue("@enm", txtEName.Text.Trim());
cmd.Parameters.AddWithValue("@eimg", imgByte);
int id = Convert.ToInt32(cmd.ExecuteScalar());
lblResult.Text = String.Format("Employee ID is {0}", id);
}
catch
{
lblResult.Text = "There was an error";
}
finally
{
connection.Close();
}

}
VB.NET
Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
Dim connection As SqlConnection = Nothing
Try
Dim img As FileUpload = CType(imgUpload, FileUpload)
Dim imgByte As Byte() = Nothing
If img.HasFile AndAlso Not img.PostedFile Is Nothing Then
'To create a PostedFile
Dim File As HttpPostedFile = imgUpload.PostedFile
'Create byte Array with file len
imgByte = New Byte(File.ContentLength - 1) {}
'force the control to load data in array
File.InputStream.Read(imgByte, 0, File.ContentLength)
End If
' Insert the employee name and image into db
Dim conn As String = ConfigurationManager.ConnectionStrings("EmployeeConnString").ConnectionString
connection = New SqlConnection(conn)

connection.Open()
Dim sql As String = "INSERT INTO EmpDetails(empname,empimg) VALUES(@enm, @eimg) SELECT @@IDENTITY"
Dim cmd As SqlCommand = New SqlCommand(sql, connection)
cmd.Parameters.AddWithValue("@enm", txtEName.Text.Trim())
cmd.Parameters.AddWithValue("@eimg", imgByte)
Dim id As Integer = Convert.ToInt32(cmd.ExecuteScalar())
lblResult.Text = String.Format("Employee ID is {0}", id)
Catch
lblResult.Text = "There was an error"
Finally
connection.Close()
End Try
End Sub

دوست عزيز من ازتون عذر مي خوام اما ميشه يك مثال ديگه از پارامتر ها به زبان سي شارپ بزنيد به عنوان مثال من مي خوام اطلاعات يك فرد اعم از نام و فاميلي و شماره تلفن و ايميل رو در جدول مشخصات ثبت كنم يك مثال هم در ايم مورد بزنيد بي نهايت ممنونتون ميشم

اوبالیت به بو
یک شنبه 02 خرداد 1389, 15:33 عصر
http://barnamenevis.org/forum/showpost.php?p=989296&postcount=3
http://barnamenevis.org/forum/showpost.php?p=989428&postcount=4