![]() |
|
|||||||||
|
|||||||||
|
| Attention Visitor: |
| You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
||||||
| MS SQL Programand in Microsoft(tm) SQL Server. |
![]() |
|
|
Thread Tools | Moduri de afișare |
|
|
#1 |
|
Beat in post!
|
Am cautat azi pe net un script care sa te protejeze inpotriva sql inject si m-am gandit sa postez si aici pentru ca poate aveti si voi probleme sau poate chiar va intereseaza
In primul rand avem pagina unde este input-ul care arata ceva de genu: Cod:
<form method="post" action="test.php">
<input type="text" name="search" />
<input type="submit" value="ok" />
</form>
Al 2-lea fisier se numeste test.php care contine urmatorul script: Cod:
function anti_injection( $search )
{
$banlist = array
(
"insert", "select", "update", "delete", "distinct", "having", "truncate", "replace",
"handler", "like", "as", "or", "procedure", "limit", "order by", "group by", "asc", "desc"
);
if ( eregi ( "[a-zA-Z0-9]+", $search ) )
{
$user = trim ( str_replace ( $banlist, '', strtolower ( $search ) ) );
}
else
{
$user = NULL;
}
$array = array ( 'search' => $search );
if ( in_array ( NULL, $array ) )
{
die ( 'Hacking attempt. Go play someplace else, you script kiddie.' );
}
else
{
return $_POST['search'];
}
}
print anti_injection ( $_POST['search'] );
Repet ...scriptul nu este facut de catre mine ci doar modificat sper sa va fie de folos |
|
|
|
| Sponsored Links |
|
|
#2 |
|
8-Bit Member
Data înregistrării: 25.10.2005
Mesaje: 6
Rep Power: 5 ![]() |
Misto scriptul ma gandeam sa imi scriu si eu unu. Desi cred ca ar fi prudent sa banezi si restu functiilor MSSQL (sau MySQL daca e folosit). Si totusi consider necesar ca dupa ce faci toate astea sa mai adaugi si mysql_escape_string() pe variabila returanata. Cel putin asa vei fi sigur ca nici un sql injection nu e posibil.
|
|
|
|
|
|
#3 |
|
16-Bit Member
Data înregistrării: 08.09.2005
Mesaje: 12
Rep Power: 5 ![]() |
Si daca ai formularul de search la un site de programare, unde 100% userii trebuie sa caute despre insert, select, delete etc ce faci ?
Cred ca mysql_escape_string() isi face treaba bine, poate si o conditie sa citeasca numai litere si cifre . |
|
|
|
|
|
#4 | |
|
Beat in post!
|
Citat:
|
|
|
|
|
|
|
#5 |
|
16-Bit Member
Data înregistrării: 08.09.2005
Mesaje: 12
Rep Power: 5 ![]() |
Eh nu m-am mai uitat la data la care ai postat tu
)))
|
|
|
|
|
|
#6 |
|
16-Bit Member
Data înregistrării: 17.11.2009
Mesaje: 26
Rep Power: 1 ![]() |
si eu m-am uitat
|
|
|
|
|
|
#7 |
|
1024-Bit Member
Data înregistrării: 10.11.2005
Locație: Constanța
Mesaje: 1.376
Rep Power: 10 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Cand o sa ajung la birou o sa va dau o functie pentru anti-sql injection, e destul de simpla.
|
|
|
|
|
|
#8 |
|
1024-Bit Member
Data înregistrării: 10.11.2005
Locație: Constanța
Mesaje: 1.376
Rep Power: 10 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Cod:
function sql($sql) {
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql = addslashes($sql);
return $sql;
}
Cod:
sql($_POST['variabila']); Last edited by skreach; 01.03.2010 at 03:38:56. |
|
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Moduri de afișare | |
|
|