В настоящее время я пишу модуль регистрации. По сути, это модуль регистрации, который берет информацию о пользователе с сайта asp.net и отправляет ее на SQL-сервер. Я внес значительные изменения, но при сканировании с помощью acunetix у меня все еще возникают проблемы с XSS. Модуль регистрации работает нормально, но я хотел избежать XSS. Потому что он явно уязвим и не прошел сканирование acunetix.
Последний код, который я придумал, приведен ниже. Это событие нажатия кнопки.
Dim connQuery As String = "Data Source=myserver;Initial Catalog=mydatabase;Integrated Security=True"
Dim cs As SqlConnection = New SqlConnection(connQuery)
Dim da As SqlDataAdapter = New SqlDataAdapter()
Dim table As String = "[mydatabase].[dbo].[users]"
Dim query As String = "INSERT INTO " & table & "(passwd, FName, LName, Organization, TelNo, FaxNo, Title, Email, User_type, GroupID, Activated, request_num, FirstLogin, LastLogin, IsLoggedin, IsOutsideInv, WI, study_type) VALUES (@passwd, @FName, @LName, @Organization, @TelNo, @FaxNo, @Title, @Email, @User_type, @GroupID, @Activated, @request_num, @FirstLogin, @LastLogin, @IsLoggedin, @IsOutsideInv, @WI, @study_type)"
Try
da.InsertCommand = New SqlCommand(query, cs)
' da.InsertCommand.Parameters.Add("@passwd", SqlDbType.NVarChar).Value = txtPassword.Text
da.InsertCommand.Parameters.Add("@passwd", SqlDbType.NVarChar).Value = encode(txtPassword.Text)
da.InsertCommand.Parameters.Add("@FName", SqlDbType.NVarChar).Value = txtFirstName.Text
da.InsertCommand.Parameters.Add("@LName", SqlDbType.NVarChar).Value = txtLastName.Text
da.InsertCommand.Parameters.Add("@Organization", SqlDbType.NVarChar).Value = txtOrg.Text
da.InsertCommand.Parameters.Add("@TelNo", SqlDbType.NVarChar).Value = txtPhone.Text
da.InsertCommand.Parameters.Add("@FaxNo", SqlDbType.NVarChar).Value = txtFax.Text
da.InsertCommand.Parameters.Add("@Title", SqlDbType.NVarChar).Value = txtTitle.Text
da.InsertCommand.Parameters.Add("@Email", SqlDbType.NVarChar).Value = txtEmail.Text
da.InsertCommand.Parameters.Add("@User_type", SqlDbType.Int).Value = 0
da.InsertCommand.Parameters.Add("@GroupID", SqlDbType.NVarChar).Value = 0
da.InsertCommand.Parameters.Add("@Activated", SqlDbType.Bit).Value = 0
da.InsertCommand.Parameters.Add("@request_num", SqlDbType.Int).Value = 0
da.InsertCommand.Parameters.Add("@FirstLogin", SqlDbType.DateTime).Value = DateAndTime.Now
da.InsertCommand.Parameters.Add("@LastLogin", SqlDbType.NVarChar).Value = DateAndTime.Now
da.InsertCommand.Parameters.Add("@IsLoggedin", SqlDbType.Bit).Value = 0
da.InsertCommand.Parameters.Add("@IsOutsideInv", SqlDbType.NVarChar).Value = 0
da.InsertCommand.Parameters.Add("@WI", SqlDbType.NVarChar).Value = txtInves.Text
da.InsertCommand.Parameters.Add("@study_type", SqlDbType.NVarChar).Value = 0
cs.Open()
da.InsertCommand.ExecuteNonQuery()
cs.Close()
Catch ex As Exception
Labelmessage.Text = "Error while adding record to the database ==> " & ex.Message.ToString()
Finally
cs.Close()
End Try
Каким будет идеальный способ пройти это сканирование? Буду признателен за любую помощь.
Ты прав. Простите!
XSS - это то место, где вы создаете выходной html, он не имеет ничего общего с запросами к базе данных.
Кстати, хранение паролей в виде обычного текста - действительно плохая идея. Пожалуйста, используйте bcrypt или pbkdf2.
сохранение пароля в виде простого текстового кода было отмечено как комментарий. Пожалуйста, посмотрите в следующей строке, какой пароль зашифрован.


Я не понимаю, какое отношение это имеет к VBA? Следует ли это пометить как VB.NET? Это НЕ одно и то же!