[Python-de] mysql gefährliche zeichen "escapen"
Paul Rauch
LightLan at lightlan.de
Fr Feb 2 17:32:25 CET 2007
Paul Rauch schrieb:
> Mathias Uebel schrieb:
>> Diez B. Roggisch schrieb:
>>> Tobias Bender schrieb:
>>>> Man könnte unerwünschte Zeichen mit re.sub einfach rauslöschen oder
>>>> mit re.match testen und bei Bedarf eine exception werfen.
>>> Das ist gefaehrlicher Unfug!!! Dabei kann einem viel zu viel passieren.
>>>
>>> Stattdessen verwendet man die parametrisierte Form von cursor.execute,
>>> etwa so:
>>>
>>> cursore.execute("select * from some_table where some_column = %s",
>>> some_column_parameter)
>>>
>> Das ist bekannt.
>>
>> Aber eventuell hatte der Frager etwas anders im Sinn:
>> In PHP gibt es, um derlei Angriffe auszuschließen, eine gesonderte
>> Funktion: mysql_escape_string
>>
>> Naja, schönes Wochenende an Alle.
>>
>> _______________________________________________
>> python-de maillist - python-de at python.net
>> http://python.net/mailman/listinfo/python-de
>>
> ja, sowas in der art meinte ich.
>
> und mit whitelists werde ich nicht ohne weiteres fertig, wegem dem, was
> ich plane.
> das nutze ich für php. ich hätte gerne etwas mit gleicher funktion in
> python.
>
> //benötigt für make_safe
> function strip_gpc_slashes ($input){
> if ( !get_magic_quotes_gpc() || ( !is_string($input) &&
> !is_array($input) ) ){
> return $input;
> }
> if ( is_string($input) ){
> $output = stripslashes($input);
> } elseif ( is_array($input) ) {
> $output = array();
> foreach ($input as $key => $val) {
> $new_key = stripslashes($key);
> $new_val = strip_gpc_slashes($val);
> $output[$new_key] = $new_val;
> }
> }
> return $output;
> }
> // String ueberprufen und sicher machen fuer MySQL-Abfragen
> function make_safe($variable) {
> $variable = strip_gpc_slashes($variable);
> $variable = addslashes(trim($variable));
> return $variable;
> }
>