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ì:
qui ci sono delle session che è meglio cambiare perché queste sono le prime sessione che il hacker vai cercare nel suo sistema,session("username")
session("password")
session("root")
session("nome")
etc…..
allora per esempio cambiate così:
Adesso vediamo validità del campo LOGIN E PASSWORDsession("usernametina")
session("passwordina")
session("rootina")
session("nomemino")
etc…..
Tipico form login e password:
questo é il basico per il login<form method="POST" action="pagina.asp">
<input type="text" name="login">
<input type="password" name="password">
<input type="submit" value="invia">
</form>
iniziamo le validità:
con questo script controlla se il campo login o password non sono vuoti<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();
}
}
//-->
per chiamare questo script su form fai così
questo script é un po’ inutile quando parliamo di hacker ma anche così trovo un bene usare.<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>
magari il hacker clicca su destro del mouse e vede l’indirizzo della pagina:
Adesso nella pagina.asp mettete questo controlo:<form method="POST" action="http://www.seusite.com.br/pagina.asp">
un hacker non si ferma qui, certamente digiterà una simplice apice se è senza un controllo è possibile mettere qualcosa tipo:<%
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
%>
questo comando semplicemente cancellerà i dati della tabella users' ; drop table 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:
Vedete come rimani la consulta sqllogin = admin
password = ' or 1=1—
Il hacker verifica se il nome del login é admin e se la password é vuota o 1 è uguale a 1 .select * from users where login='admin' and password =’’ or 1=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ì:
Così il malintenzionato saprà il nome della tabella users e il nome del campo codiceMicrosoft 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
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
usiamo questo codice per certificarci che l'intruso sta osservando il campo login nel suo micro<%
login = Server.HtmlEncode( request.form("login")
%>
in questo modo è quasi impossibile il hacker entrare su suo sistema di login.<%
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
%>
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