Ho trovato qualche spunto sul un forum brasiliano.

Ho fatto anche un piccolo riassunto del metodo di sicurezza .

I sistema di login disponibile in rete sono facile di essere scoperti da una persona malintenzionata…

1° se prende un sistema di login su internet, cambia il nome di tutte le variabile del sistema
perche se qualcuno con malintenzionata prende lo stesso codice, lui può vedere tutte le imperfezione del sistema
2° Non esiste sistema di login perfetto, allora possiamo rendere più difficile che qualcuno trovi gli errore nel sistema

i login pronti su internet, ma anche quelli che programmano, il suo proprio sistemi costumano usare sessions così:
session("username")
session("password")
session("root")
session("nome")
etc…..
qui ci sono delle session che è meglio cambiare perché queste sono le prime sessione che il hacker vai cercare nel suo sistema,
allora per esempio cambiate così:
session("usernametina")
session("passwordina")
session("rootina")
session("nomemino")
etc…..
Adesso vediamo validità del campo LOGIN E PASSWORD
Tipico form login e password:

<form method="POST" action="pagina.asp">
<input type="text" name="login">
<input type="password" name="password">
<input type="submit" value="invia">
</form>
questo é il basico per il login
iniziamo le validità:
<script language="JavaScript">
<!--
function valida(form){
if (document[form].login.value == ""){
document[form].login.focus();
alert('per piacere, informe il suo login');
}
else if (document[form]. password.value == ""){
document[form].password.focus();
alert('Informe la sua password');

}
else{
document[form].submit();
}
}
//-->
con questo script controlla se il campo login o password non sono vuoti
per chiamare questo script su form fai così
<form method="POST" action="pagina.asp">
<input type="text" name="login">
<input type="password" name="password">
<input type="button" onclick="verifica('form');" value="invia">
</form>
questo script é un po’ inutile quando parliamo di hacker ma anche così trovo un bene usare.

magari il hacker clicca su destro del mouse e vede l’indirizzo della pagina:
<form method="POST" action="http://www.seusite.com.br/pagina.asp">
Adesso nella pagina.asp mettete questo controlo:
<%
login = request.form("login")
password = request.form("password ")

if login = "" then
response.redirect "PaginaDiLogin.asp"
response.end()
end if

if password = "" then
response.redirect "PaginaDiLogin.asp"
response.end()
end if
%>
un hacker non si ferma qui, certamente digiterà una simplice apice se è senza un controllo è possibile mettere qualcosa tipo:
' ; drop table users--
questo comando semplicemente cancellerà i dati della tabella users
immaginate perdere tutti utenti registrati su suo sito!

È molto facile per un hacker scoprire il nome della tabella, vi mostrerò questo come.

Il carattere ; il fine di una consulta su T-sql e il carattere (--) nel finale della linea fa che lo script asp sia eseguito senza errore

Beh, magari non hai nessuna sicurazza il hacker cercherà di entrare nel suo sistema in questo modo:

login = admin
password = ' or 1=1—
Vedete come rimani la consulta sql
select * from users where login='admin' and password =’’ or 1=1--'
Il hacker verifica se il nome del login é admin e se la password é vuota o 1 è uguale a 1 .
se esistere un utente admin lui entra nel suo sistema

Chissà il nostro amico hacker cerca di fare così:

login = ' or 1=1--
password =
select * from users where login='' or 1=1 --' and password=''

é possible anche entrare così:
login = ' OR "='
password = ' OR "='

select * from users where login='' OR "=" AND password='' OR "="
la consulta adesso sta facendo la comparazione di: OR”=” che è sempre vero.

Per sapere il nome della tabella lui fa così:
login = ' having 1=1--
password =
viene scritto un errore così:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft] [ODBC SQL Server Driver] [SQL Server] Column 'users.codice' is invalid in the

select list because it is not contained in an aggregate function and there is no GROUP BY

clause.

/pagina.asp , line 37
Così il malintenzionato saprà il nome della tabella users e il nome del campo codice
E cercherà di indovinare la password
Se userà il del campo login e password
Lui si registrerà così
login = ' ; INSERT INTO users VALUES('iporto','1984')--
password =

il registro nel sito come importo password 1984
pronto se registra come admin su suo sito
che si fa?

Non lasciamo il hacker usare queste parole:
<%
login = request.Form("login")
login = replace(login,"'","''")
login = replace(login,"#","''")
login = replace(login,"$","''")
login = replace(login,"%","''")
login = replace(login,"¨","''")
login = replace(login,"&","''")
login = replace(login,"'or'1'='1'","''")
login = replace(login,"--","''")
login = replace(login,"insert","''")
login = replace(login,"drop","''")
login = replace(login,"delet","''")
login = replace(login,"xp_","''")
login = replace(login,"select","''")
login = replace(login,"*","''")
%>

faccia cosi nel campo di login e password

un’altra cosa
ha sempre qualcuno che cerca di usare le target html
esemplo
è possibile che lui se registre cosi

allora per evitare fai cosi
<%
login = Server.HtmlEncode( request.form("login")
%>
usiamo questo codice per certificarci che l'intruso sta osservando il campo login nel suo micro

<%
IF Request.ServerVariables("HTTP_REFERER") <> Request.ServerVariables("SERVER_NAME") and

Request.ServerVariables("HTTP_REFERER") = "" THEN
response.write "Accesso negato"
response.end()
%>
<%
else
%>

<script language="JavaScript">
<!--
function valida(form){
if (document[form].login.value == ""){
document[form].login.focus();
alert('Per favore, informe suo login');
}
else if (document[form].password.value == ""){
document[form].password.focus();
alert('Informe suo password');

}
else{
document[form].submit();
}
}
//-->
</script>

<form method="POST" action="pagina.asp">
<input type="text" name="login">
<input type="password" name="password">
<input type="button" onclick="verifica('form');" value="invia">
</form>

<%
End IF
%>
in questo modo è quasi impossibile il hacker entrare su suo sistema di login.

altre regole basiche:

non usare www.suo sito.it/admin
use cosiper esempio: http://www.suosito.it/abracadabra/gi.../qui_legal.asp

no lasciare che il google registre il suo sistema di login
use il file robots.txt
metta questo sulla prima parte del sito
www.suo sito.it//robots.txt
scriva questo su file:
User-agent: *
Disallow: /abracadabra/giraia/showdaxuxa/

Se vuoi usare questo file in altre cartelle
User-agent: *
Disallow: /abracadabra/giraia/showdaxuxa/
Disallow: /caramba/
Disallow: /images/

Dopo che hai messo il file robots.txt veda se sta funzionando
http://www.searchengineworld.com/cgi-bin/robotcheck.cgi

dopo tutto questo non usare password tipo:
amor, admin, root, administrador, suo_nome, seu_site, 123, 123456, 654, 321, 789, 987, 951, 753, 741, 852, 963 o oltre combinazioni molto facile, poi ci sono programmi su internet che indovina la sua password.
E non pensare che mela, banana, milano, italia, etc .. siano password difficile,
Perche ci sono sui dizionari di password, ha milioni di password comuni.

Usa come alfanumerico con minimo 6 digiti come per esempio:
x19y8q

ADESSO VORREI SAPERE COME REDENTE SICURO IL VOSTRO SITO

Scusate per gli sbagli d’italiano