Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 19:48

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Anti SQL Injection

Discussion on Anti SQL Injection within the Web Development forum part of the Coders Den category.

Closed Thread
 
Old   #1
 
elite*gold: 0
Join Date: Nov 2010
Posts: 255
Received Thanks: 176
Anti SQL Injection

Hallo,

mal ein kleiner Anti SQL Injection code.

PHP Code:
$array = array("'""union""select""<script>""alert""order""../""/etc/passwd""c99""/etc/shadow""substr"); 

foreach (
$_REQUEST as $req

    foreach (
$array as $arr
    { 
        if (
preg_match("/".$arr."/i"$req) == true
        { 
            die(
"SQL Injection blocked!"); 
        } 
    } 

MfG
ˏ˖→»[ற4ЯCø]«←˖ˏ™ is offline  
Old 10/30/2013, 23:47   #2
 
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
Schwachsinn.
dowhile is offline  
Old 10/30/2013, 23:50   #3

 
マルコ's Avatar
 
elite*gold: 1329
Join Date: Jun 2009
Posts: 1,873
Received Thanks: 960
OK. Nein. Das ist der schlechteste Schutz, den ich je gesehen hab^^
- unperformant
- blockiert nur die gegebenen Zeichenketten
- blockiert Zeichenketten, die die gegebenen Zeichenketten enthalten

Ich schlage einfaches escapen vor. oder noch besser die Verwendung von Prepared Statements (siehe z.B. PDO)
マルコ is offline  
Old 10/30/2013, 23:54   #4
 
Jay Niize's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 4,851
Received Thanks: 3,417
Kommt hier rein :

Zumal gibt es mehrere SQL-Injections als diese in deinem Array.

Benutze lieber das hier :

Quote:
Originally Posted by Che​ View Post
Code:
array_walk($_GET, create_function('&$value', 'return $value=htmlspecialchars(mysql_escape_string($value));'));
array_walk($_POST, create_function('&$value', 'return $value=htmlspecialchars(mysql_escape_string($value));'));
Nettes Snippet um PHP Scripte allgemein deutlich sicherer zu machen. Im Grunde genommen nimmt man so (sofern geschickt im Haupt-Script eingebaut) ganz bequem jeglichen Nutzern sämtliche Möglichkeiten XSS- oder SQLi-Attacken durchzuführen.

~Grüße
Jay Niize is offline  
Thanks
1 User
Old 10/31/2013, 00:28   #5
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Wenn wir schon dabei sind:

Ein PHP-Script nie absterben lassen^^(die() )
Wenn du abbrichst, dann mit exit oder return
XxharCs is offline  
Old 10/31/2013, 01:18   #6
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
Quote:
Originally Posted by XxharCs View Post
Wenn wir schon dabei sind:

Ein PHP-Script nie absterben lassen^^(die() )
Wenn du abbrichst, dann mit exit oder return
Wenn wir grad dabei sind:

Quote:
There's no difference - they are the same.

Quote:
PHP Manual for exit:

Note: This language construct is equivalent to die().
Quote:
PHP Manual for die:

This language construct is equivalent to exit().
tolio is offline  
Thanks
5 Users
Old 10/31/2013, 11:46   #7
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Quote:
Originally Posted by tolio View Post
Wenn wir grad dabei sind:
Quote:
There's no difference - they are the same.


Quote:
PHP Manual for exit:

Note: This language construct is equivalent to die().
Quote:
PHP Manual for die:

This language construct is equivalent to exit().
Jeder Professionelle PHP-Programmierer wird dir von die() abraten.
Bei einem die() ist das Exception, Warning, Error Handling einfach nur grauslich. (Außer man verwendet ein @ vor der ganzen Funktion, was widderum grauslich ist)

Mit einem die() kannst du nicht alle Errors loggen, auffagen usw. und sowas ist eine schöne Information für einen Angreifer wenn er das meiste mitlesen kann.
Quote:
Originally Posted by Aus mehreren PHP Programmierer - Blogs&Forums
  • It's not a very nice way to present the user with an error message.
  • Using for instance the mysql_error() call with it, as many people do, exposes information that should never get output in a production environment (see: PHP Security)
  • You cannot catch the error in any way.
  • You cannot log the error.
  • You cannot control whether it should be output to the screen or not. It's okay to do that in a development environment, but certainly not in a production environment.
  • It prevents you from doing any sort of cleanup. It just ends the script abruptly.

Bei einem exit() kannst du Errors loggen, mit einem Errorcode das script beenden und du gibst nicht so leicht Info an einen Angreifer.

Außerdem steht in meinem Post noch return.
In der Produktion sollte man return und exit bevorzugen als ein Script mit allem drum und dran absterben zu lassen(die)


Aber dies kann zu einer endlosen Diskussion eskalieren, da jeder hier eine andere Meinung haben wird.
Deswegen der Post von:
Quote:
Originally Posted by .Zeraki' View Post
Kommt hier rein :

Zumal gibt es mehrere SQL-Injections als diese in deinem Array.

Benutze lieber das hier :

Zitat:
Zitat von Che​
Code:
Quote:
array_walk($_GET, create_function('&$value', 'return $value=htmlspecialchars(mysql_escape_string($value ));')); array_walk($_POST, create_function('&$value', 'return $value=htmlspecialchars(mysql_escape_string($value ));'));
Nettes Snippet um PHP Scripte allgemein deutlich sicherer zu machen. Im Grunde genommen nimmt man so (sofern geschickt im Haupt-Script eingebaut) ganz bequem jeglichen Nutzern sämtliche Möglichkeiten XSS- oder SQLi-Attacken durchzuführen.



~Grüße
XxharCs is offline  
Old 10/31/2013, 14:14   #8


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,907
Received Thanks: 25,408
Was ist daran nicht zu verstehen, dass exit und die Synonyme sind?


Btw. Das Snippet von Che ist auch nicht viel besser.

#closed
MrSm!th is offline  
Thanks
3 Users
Closed Thread

Tags
anti sql injection, injection, sql, sql injection


Similar Threads Similar Threads
[HELP] Website anti DDOS, anti Sql Injection
04/13/2013 - Flyff Private Server - 10 Replies
what is the anti ddos and anti sql injection javascript? thanks in advance :)
[Release] Anti-Cheat DLL - *Lite* (Anti Injection)
04/11/2013 - Metin2 PServer Guides & Strategies - 30 Replies
Heyho, ich habe mir überlegt hier eine Kleinigkeit als einstieg zu releasen! Dann wollen wir mal schauen, was ich anzubieten habe: - Eine anti Injection DLL! Was könnt ihr damit machen? Ganz einfach, das injecten von Hacks verhindern! Lite? Gibt es auch eine andere Version? Die gibt es in der tat, unter Umständen kommt die noch mal dazu.
Anti .dll Injection
01/27/2013 - General Coding - 31 Replies
Diese Video zeigt, dass es möglich ist, injizierte .dll ausfindig zu machen. Anti .dll Injection - YouTube
Anti Injection On Register
03/15/2012 - SRO Private Server - 0 Replies
function anti_injection($sql) { $sql = preg_replace(sql_regcase("/(from|select|inser t|delete|where|'|\"|drop table|show tables|#|\*|--|\\\\)/"),"",$sql); $sql = trim($sql); $sql = strip_tags($sql); $sql = addslashes($sql); return $sql; } $username=anti_injection($_POST); $password=md5($_POST); $password2=anti_injection($_POST);



All times are GMT +1. The time now is 19:49.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.