English 中文(简体)
在PHP中填出MySQL的问询
原标题:Filtering out MySQL query in PHP

在那里,我对涉及一些用户投入的MySQL数据库做了一些询问。 我也想知道,如何防止注射袭击,例如,有人是否要打字。

"; a-MySQL query here;"

这将付诸实施,这将使人们能够利用我的系统。 我不禁要问,我如何保护他们免受类似情况的影响,可能产生一种功能,过滤对坏陈述的质疑? 或者也许不允许;性质?

To sum it all up:

  • Whats the common practice now adays to prevent injection attacks?
  • How should I go about it?
  • How effective will this solution be against people who know what they are doing from changing my database.
最佳回答

唯一途径是适当逃脱用户提交的数据。 其他人指出了这样做的一些方法。

另一种方式:prepared statements and place holder. 发言稿由modern支持。 PHP数据库接口,包括msqli PDO

让我们利用发展署作为示范。 让我们说,我们希望更新一个用户提交的<代码>foo上的数据范围。

$sql =  UPDATE foo SET bar = ? WHERE user_id = ? ;
$sh = $db->prepare($sql);
$sh->execute(array( $_POST[ bar ], $_SESSION[ user_id ] ));

转至<代码>execute的阵列中的变量取代提问标的持有人。 当发生这种情况时,他们就自动逃脱并引述<>>。 你们不需要人工逃脱,让他们安全地进入数据库!

另一方面,你仍需要为意外内容过滤,如超文本、 Java字、你预期数字的字母等。 在数据库中安全插入数据是:

问题回答




相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

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 = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...

热门标签