Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP General > Web application security

Reply
Thread Tools

Web application security

 
 
gdp
Guest
Posts: n/a
 
      05-26-2004
Hi...

I have to allow access for administrators to sections of my website which
contain sensitive data. Ther is a link on the homepage called "Admin
Login". They are asked for a PIN number which is a randon four letter four
number combo and if they get that correct then have to enter their personal
username and password.

The text field inputs are cleaned before being used to make up dynamic SQL
by replacing all apostrophes with the below function

function clean(clean_this)
clean=trim(replace(clean_this,"'","''"))
end function


Is this all safe....I am slightly uneasy about having the login on the
website and it could be hidden in a special link only given to admins - but
this is the same mechanism that ebay and amazon etc rely on to let people
log in....

Could somebody please advise me of any dangers of this approach

thanks

gdp


 
Reply With Quote
 
 
 
 
Captain Flack
Guest
Posts: n/a
 
      05-26-2004
gdp wrote:

> Hi...
>
> I have to allow access for administrators to sections of my website which
> contain sensitive data. Ther is a link on the homepage called "Admin
> Login". They are asked for a PIN number which is a randon four letter four
> number combo and if they get that correct then have to enter their personal
> username and password.
>
> The text field inputs are cleaned before being used to make up dynamic SQL
> by replacing all apostrophes with the below function
>
> function clean(clean_this)
> clean=trim(replace(clean_this,"'","''"))
> end function
>
>
> Is this all safe....I am slightly uneasy about having the login on the
> website and it could be hidden in a special link only given to admins - but
> this is the same mechanism that ebay and amazon etc rely on to let people
> log in....


One additional security measure against SQL injection is to check that
the username and password exist once you've pulled out the user record.

For example, to see if user is valid:

SELECT * FROM users WHERE user_name='myname' AND user_pw='mypassword'

Run this to pull out a recordset. First step is to check the recordcount
is 1, i.e. you have found the record (user exists).

But then you should check the username and password you pulled out with
this query against the ones entered by the user.

For example

If rs("user_name")<>"myname" OR rs("user_pw")<>"mypassword" then
response.redirect("error.asp")
End if

Even if you didn't use your clean function and someone codes an
injection attack to return a record, the username and password pulled
out won't match what they entered (because they entered SQL code, not a
username/password) and they'll get bounced to your error page.



--



(remove Tony Blair from office to contact me)
 
Reply With Quote
 
 
 
 
Bob Barrows [MVP]
Guest
Posts: n/a
 
      05-26-2004
gdp wrote:
> Hi...
>
> I have to allow access for administrators to sections of my website
> which contain sensitive data. Ther is a link on the homepage called
> "Admin Login". They are asked for a PIN number which is a randon
> four letter four number combo and if they get that correct then have
> to enter their personal username and password.
>
> The text field inputs are cleaned before being used to make up
> dynamic SQL by replacing all apostrophes with the below function
>
> function clean(clean_this)
> clean=trim(replace(clean_this,"'","''"))
> end function
>
>
> Is this all safe....I am slightly uneasy about having the login on the
> website and it could be hidden in a special link only given to admins
> - but this is the same mechanism that ebay and amazon etc rely on to
> let people log in....
>
> Could somebody please advise me of any dangers of this approach
>
> thanks
>
> gdp


The best defense against sql injection is to avoid dynamic sql. Pass
parameters to stored procedures (or saved parameter queries if Jet).

Bob Barrows
--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.


 
Reply With Quote
 
Alan Howard
Guest
Posts: n/a
 
      05-26-2004
Consider creating a stored proc that takes two params and returns a
bit/bool, not a recordset. The proc can test the supplied username/password
and return a true/false indication, there is no need to return the username
and password to your application where the values could potentially be
sniffed, and it avoids the whole dynamic SQL issue.

e.g. (untested)

create proc usp_Admin_TestLogin

@username varchar(50),
@password varchar(20),
@success bit output

as

if exists (select * from Users where username = @username and password =
@password)
set @success = 1
else
set @success = 0

return 0

go


Alan



"gdp" <> wrote in message
news:FOZsc.14132$. net...
> Hi...
>
> I have to allow access for administrators to sections of my website which
> contain sensitive data. Ther is a link on the homepage called "Admin
> Login". They are asked for a PIN number which is a randon four letter

four
> number combo and if they get that correct then have to enter their

personal
> username and password.
>
> The text field inputs are cleaned before being used to make up dynamic SQL
> by replacing all apostrophes with the below function
>
> function clean(clean_this)
> clean=trim(replace(clean_this,"'","''"))
> end function
>
>
> Is this all safe....I am slightly uneasy about having the login on the
> website and it could be hidden in a special link only given to admins -

but
> this is the same mechanism that ebay and amazon etc rely on to let people
> log in....
>
> Could somebody please advise me of any dangers of this approach
>
> thanks
>
> gdp
>
>



 
Reply With Quote
 
gdp
Guest
Posts: n/a
 
      05-27-2004
thanks for the advice...appreciated


"gdp" <> wrote in message
news:FOZsc.14132$. net...
> Hi...
>
> I have to allow access for administrators to sections of my website which
> contain sensitive data. Ther is a link on the homepage called "Admin
> Login". They are asked for a PIN number which is a randon four letter

four
> number combo and if they get that correct then have to enter their

personal
> username and password.
>
> The text field inputs are cleaned before being used to make up dynamic SQL
> by replacing all apostrophes with the below function
>
> function clean(clean_this)
> clean=trim(replace(clean_this,"'","''"))
> end function
>
>
> Is this all safe....I am slightly uneasy about having the login on the
> website and it could be hidden in a special link only given to admins -

but
> this is the same mechanism that ebay and amazon etc rely on to let people
> log in....
>
> Could somebody please advise me of any dangers of this approach
>
> thanks
>
> gdp
>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Web application or mvc web application? Andy B ASP .Net 0 08-13-2008 11:32 AM
Unable to cast object of type 'System.Security.Principal.GenericIdentity' to type 'System.Web.Security.FormsIdentity'. adupuis@dublin.ie ASP .Net 2 08-31-2007 12:51 PM
Going from anonymous security to Windows Security in an ASP.NET application Michael Randrup ASP .Net Security 3 03-27-2006 09:18 PM
Design Issue: Separating Application Security Model from the Application (Custom or User) Controls Earl Teigrob ASP .Net 3 06-10-2004 01:56 AM
IT-Security, Security, e-security COMSOLIT Messmer Computer Support 0 09-05-2003 08:34 AM



Advertisments