PHP防止数据库数字SQL注入攻击

<?php

header("Content-Type:text/html;charset=UTF-8");

// 数据库配置

include_once 'config.php';

// 获得传递参数

$id=urldecode($_GET['id']);

// 判断是否有参数

$id = isset($id) ? $id : '';

// 防止SQL注入

if (empty($id) || !is_numeric($id))

{

    die("警告:这个是非法数字!");

}

// 连接数据库

$conn=mysql_connect($Db_Server,$Db_User,$Db_Pwd);

// 判断连接是否成功

if (!$conn)

{

die("不能连接数据库,错误是: " . mysql_error());

}

// 数据库输出编码,应该与你的数据库编码保持一致。建议用UTF-8国际标准编码

mysql_query("set names 'utf8'"); 

// 打开数据库

$db_selected = mysql_select_db($Db_Name, $conn);

// 判断打开是否成功

if (!$db_selected)

{

die ("不能打开数据库,错误是: " . mysql_error());

}

// SQL语句

$sql ="select * from demo where id=".$id;

// 查询SQL语句

$result = mysql_query($sql,$conn); 

// 判断是否有数据

if (!$result)

{

die("查询失败: " . mysql_error());

}

// 循环读取数据

while($row = mysql_fetch_array($result))

{

// 读数据

echo $row['content'];

}

// 使用完毕关闭数据库连接

mysql_close();

?>

时间: 2024-08-04 11:33:41

PHP防止数据库数字SQL注入攻击的相关文章

使用SQLMAP对网站和数据库进行SQL注入攻击

from:http://www.blackmoreops.com/2014/05/07/use-sqlmap-sql-injection-hack-website-database/ 0x00 背景介绍 1. 什么是SQL注入? SQL注入是一种代码注入技术,过去常常用于攻击数据驱动性的应用,比如将恶意的SQL代码注入到特定字段用于实施拖库攻击等.SQL注入的成功必须借助应用程序的安全漏洞,例如用户输入没有经过正确地过滤(针对某些特定字符串)或者没有特别强调类型的时候,都容易造成异常地执行SQL

SQL注入攻击:防御和检查SQL注入的手段

虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施.知彼知己,方可取胜.首先要清楚SQL注入攻击有哪些种类. 观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的.虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施. SQL注入攻击的种类 知彼知己,方可取胜.首先要清楚SQL注入攻击有哪些种类. 1.没有正确过滤转义字符 在用户的输入没有为转义字符过滤

如何保证SQL Server免遭SQL注入攻击

SQL注入攻击可能是黑客攻击面向互联网的SQL Server数据库最常用的方式.任何使用动态SQL.允许未经检验的用户输入提交到数据库的应用程序都面临SQL注入攻击的风险,无论你的网络有多安全,或者你安装了多少防火墙.最近有一项关于Web黑客攻击的报告显示,SQL注入攻击呈上升趋势,不仅仅导致数据盗窃和数据丢失,而且在最近一连串的自动注入攻击中,数据库被破坏,向用户提供恶意Java脚本.这种渗透导致Web服务器令客户端电脑感染上其它的病毒.报告对于已经遭到攻击的网站数量统计不一,不过,哪怕是最低

sql注入-网站被SQL注入攻击,求解答原因,已经过滤掉非法字符。

问题描述 网站被SQL注入攻击,求解答原因,已经过滤掉非法字符. Query_Badwor和Form_Badword已过滤 Query_Badword="'|and|select|update|chr|or|<|>|=|where|%|*|#|&|@|delete|;|left|right|insert|mid|master.|set|chr(37)|=" 也用正则限制了只能输入英文字母.数字和汉字.服务端认证,不是JAVASCRIPT Set oReg = New

浅谈开启magic_quote_gpc后的sql注入攻击与防范_Mysql

通过启用php.ini配置文件中的相关选项,就可以将大部分想利用SQL注入漏洞的骇客拒绝于门外. 开启magic_quote_gpc=on之后,能实现addslshes()和stripslashes()这两个函数的功能.在PHP4.0及以上的版本中,该选项默认情况下是开启的,所以在PHP4.0及以上的版本中,就算PHP程序中的参数没有进行过滤,PHP系统也会对每一个通过GET.POST.COOKIE方式传递的变量自动转换,换句话说,输入的注入攻击代码将会全部被转换,将给攻击者带来非常大的困难.

常用的SQL注入攻击方法总结

1. 没有正确过滤转义字符 在用户的输入没有转义字符过滤时,就会发生这种形式的注入或攻击,它会被传递给一个SQL语句.这样就会导致应用程序的终端用户对数据库上的语句实施操作.比方说,下面的这行代码就会演示这种漏洞:  代码如下 复制代码 "SELECT * FROM users WHERE name = ' " + userName + " ' ;" 这种代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句

php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击

php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击 php防止SQL注入攻击一般有三种方法: 使用mysql_real_escape_string函数 使用addslashes函数 使用mysql bind_param() 本文章向大家详细介绍这三个方法在防止SQL注入攻击中的效果及区别. mysql_real_escape_string防sql注入攻击 mysql_real_escape_string() 函数转义 SQL 语句中

SQL注入攻击-来自微软安全博客的建议

本文翻译自微软博客上刊载的相关文章,英文原文版权归原作者所有,特此声明.原文:http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx近期趋势 从去年下半年开始,很多网站被损害,他们在用于生成动态网页的SQL数据库中存储的文本中被注入了恶意的HTML <script>标签.这样的攻击在2008年第一季度开始加速传播,并且持续影响有漏洞的Web程序.这些Web应用程序有这样一些共同点: 使用经典ASP代码的

PHP+SQL 注入攻击的技术实现以及预防办法

1. php 配置文件 php.ini 中的 magic_quotes_gpc 选项没有打开,被置为 off 2. 开发者没有对数据类型进行检查和转义 不过事实上,第二点最为重要.我认为, 对用户输入的数据类型进行检查,向 MYSQL 提交正确的数据类型,这应该是一个 web 程序员最最基本的素质.但现实中,常常有许多小白式的 Web 开发者忘了这点, 从而导致后门大开. 为什么说第二点最为重要?因为如果没有第二点的保证,magic_quotes_gpc 选项,不论为 on,还是为 off,都有