草庐IT

php - SQL 注入(inject)、引用和 PHP

我现在很困惑,想知道你是否能帮我解决问题。在最近的Anon/Lulsec攻击之后,我开始质疑我的php/mysql安全性。所以,我想,我怎样才能同时保护PHP和Mysql。问题:任何人都可以向我解释一下,当涉及到引号时,处理PHP和Mysql的最佳实践是什么?特别是在表单中,我需要某种htmlspecialchars来保护html,对吗?PHP可以通过表单被利用吗?是否需要任何类型的保护?我应该在查询前使用real_escape_stringjust吗?已经在PHP中使用它是否错误/不好(请参阅sanitize_post函数)?目前我正在使用以下功能。该函数“清理”所有$_POST和$

php - 我的代码对 SQL 注入(inject)有多脆弱?

好的,我不希望这是一个黑客建议问题,所以请不要对此投反对票。我在一家网上商店工作,我发现我们的一些旧PHP页面容易受到用户名中SQL注入(inject)的攻击,我想知道有多严重。我们使用PHP字符串将来自POST的用户输入嵌入到登录表单中。$uname=$_POST['username'];$pass=md5($_POST['pass']);$sql="SELECT*FROMusersWHEREusername='$uname'ANDpassword='$pass'ANDuserlevel='user'";...然后我运行查询。现在,我不是SQL专家,我只是使用我可以在phpMyAdm

mysql - MySQL 是否比 PostgreSQL(在 Perl/DBI 下)更能抵抗 SQL 注入(inject)攻击?

我正在审查一个基于Linux的perlweb应用程序,它包含一个无处不在的登录处理程序my$sth=$DB->prepare("SELECTpasswordfrompasswordswhereuserid='$userid'")ordie;$sth->执行或死亡;...其中$userid从(不安全的、未过滤的)网络用户输入中初始化。众所周知,DBI文档建议将此代码更改为使用占位符“?”为了安全起见,代替“$userid”。出于安全审查的目的,此代码原样被隔离在一个离线网络盒上。互联网服务器上的此类代码最终将被破解,因为现在有机器人扫描对于这个漏洞。访问控制对于保护任何重要内容也是无效的

php - 我是在从 sql 注入(inject)中拯救自己吗?

我这样做对吗?这是否有助于避免sql注入(inject)?$deleteid=htmlspecialchars(strip_tags(mysql_real_escape_string($_POST['listid'])));mysql_send("DELETEFROMstagewherelistid='$deleteid'"); 最佳答案 没有。你应该只调用mysql_real_escape_string。htmlspecialchars和strip_tags函数用于对要显示为HTML的字符串进行编码。它们不应该与SQL一起使用

php - 基本的 SQL 注入(inject)?

有人告诉我previousquestion我的查询容易受到SQL注入(inject)。get_stats=mysql_query("SELECT*FROMvisitorsWHEREsite='$_GET[site]'ANDdateBETWEEN'$start_date'AND'$end_date'");解决这个问题最简单的方法是什么?您是否有关于注入(inject)主题的进一步阅读?(我可能会在谷歌上错过的东西)。谢谢! 最佳答案 使用PreparedStatements.在大多数情况下,准备好的语句会以安全的方式完成将查询与参数组

php - SQL 注入(inject)如何工作以及如何防范它

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WhatisSQLinjection?我看到很多php代码在stackoverflow上float,而且(也)很少转义字符串。任何人都可以解释什么是SQL注入(inject);解释它可以对您的服务器、数据和代码做什么;举例说明如何执行SQL注入(inject)给出如何防止SQL注入(inject)的php示例代码

php - 防止动态 SQL 中的 SQL 注入(inject)

这个问题在这里已经有了答案:HowcanIpreventSQLinjectioninPHP?(28个回答)2年前关闭。我之前问过这个问题PreventingSQLInjectionindynamicalSQL,但不清楚是什么导致问题被关闭,后来在评论中被告知我应该再次问这个问题。我的PHP/MySQL应用程序的一个要求是允许所有用户创建他们自己的多个数据“View”。这些View不是传统的SQLView,而是由应用程序执行的。例如,用户可以创建一个View并提供以下条件:View的名称。每页所需的记录。使用下拉菜单显示哪些列。结果的任何过滤器。第一个下拉菜单用于选择列,第二个下拉菜单用

php - 绕过 mysql_real_escape_string() 的 SQL 注入(inject)

即使使用mysql_real_escape_string()是否也有SQL注入(inject)的可能性?功能?考虑这个示例情况。SQL在PHP中是这样构造的:$login=mysql_real_escape_string(GetFromPost('login'));$password=mysql_real_escape_string(GetFromPost('password'));$sql="SELECT*FROMtableWHERElogin='$login'ANDpassword='$password'";我听到很多人对我说这样的代码仍然很危险,即使使用mysql_real_es

php - 防止数据库类中的 SQL 注入(inject)

我正在构建一个数据库类,我认为结合某种形式的SQL注入(inject)预防是个好主意(呃!)。下面是运行数据库查询的方法:classDB{var$db_host='localhost';var$db_user='root';var$db_passwd='';var$db_name='whatever';functionquery($sql){$this->result=mysql_query($sql,$this->link);if(!$this->result){$this->error(mysql_error());}else{return$this->result;}}}类里面的

php - SQL注入(inject)攻击

如何保护我的网站免受SQL注入(inject)攻击?我正在使用PHP和mysql。我必须改变我的mysql查询吗?例如,我有一个这样的查询:S.NoH.AdminNoStudentNameNoofDays";$i=0;while($row=mysql_fetch_array($result)){$i=$i+1;echo"";echo"".$i."";echo"".$row['hosteladmissionno']."";echo"".$row['student_name']."";echo"";echo"";}echo"";mysql_close($con);?>我是否必须在查询中包含