English 中文(简体)
这段代码真的能对付SQL注入吗?[副本]
原标题:Will this code actually work against SQL-injection? [duplicate]
This question already has answers here:
Closed 12 years ago.

Possible Duplicate:
PHP: the ultimate clean/secure function

我在这里找到了以下代码片段:http://snipplr.com/view/12853/clean-variables-from-sql-injections/

提交人声称:

这个小函数有助于解决SQL注入的常见安全问题,它可以清除任何全局变量,如$POST、$GET、$_SERVER等,并转义不安全的字符。

此代码安全吗?

function _clean($str){
  return is_array($str) ? array_map( _clean , $str) : str_replace("\", "\\"
       , htmlspecialchars((get_magic_quotes_gpc() ? stripslashes($str) : $str)
       , ENT_QUOTES));
}

//usage call it somewhere in beginning of your script
_clean($_POST);
_clean($_GET);
_clean($_REQUEST);// and so on..

请告诉我这是否安全,因为在我看来陪审团被操纵了。

最佳回答

通用代码清理功能总是个坏主意。他们会以某种方式破坏你的数据。永远不要使用它们;在数据使用之前对其进行消毒,并使用正确的卫生方法进行预期用途。

重复:PHP:终极清洁/安全功能

问题回答

如果需要为mysql数据库转义特殊字符,只需使用mysql_real_eescape_string。我想其他数据库也支持类似的功能。

这个剪辑尝试了一些愚蠢的替换,可能非常安全,但也可能会弄乱你的数据。为什么要重新发明轮子?

为什么不为数据库使用内置的转义/参数化功能呢?我同意它看起来像是陪审团操纵的,与制作数据库库的人建立的功能一致。

它不安全(没有addslashesmysql_real_sescape_string),性能也不是最佳的(对每个变量都调用get_magic_quotes_gpc)。





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签