一.前言: 版本信息:Okphp BBS v1.3 开源版 由于PHP和MYSQL本身得原因,PHP+MYSQL的注射要比asp困难,尤其是注射时语句的构造方面更是个难点,本文主要是借对Okphp BBS v1.3一些文件得简单分析,来谈谈php+mysql注射语句构造方式,希望本文对你有点帮助。 声明:文章所有提到的“漏洞”,都没有经过测试,可能根本不存在,其实有没有漏洞并不重要,重要的是分析思路和语句构造。 二.“漏洞”分析: 1.admin/lo...
mysql_real_escape_string() 所以得SQL语句如果有类似这样的写法:"select * from cdr where src =".$userId; 都要改成 $userId=mysql_real_escape_string($userId) 所有有打印的语句如echo,print等 在打印前都要使用htmlentities() 进行过滤,这样可以防止Xss,注意中文要写出htmlentities($name,ENT_NOQUOTES,GB2312) 。
今天我开发了下面的代码,算是大功初成,一天拦截了15个IP,服务器负载正常。 代码如下:<?php //查询禁止IP $ip =$_SERVER[REMOTE_ADDR]; $fileht=".htaccess2"; if(!file_exists($fileht))file_put_contents($fileht,""); $filehtarr=@file($fileht); if(in_array($ip."\r\n",$filehtarr))die("Warning:"."<br>"."Your IP address are forbided by some reason, IF you have any question Pls emill to shop@mydalle.com!"); //加...
不过最近几天突然糟糕了起来,有90%的攻击已经没法拦截,请看下图一天的统计: IP攻击及开始时间 攻击次数 地点 备注 125.165.1.42--2010-11-19 02:02:19--/ 10 印度尼西亚 125.165.26.186--2010-11-19 16:56:45--/ 1846 印度尼西亚 151.51.238.254--2010-11-19 09:32:40--/ 4581 意大利 151.76.40.182--2010-11-19 11:58:37--/ 4763 意大利 罗马 186.28.125.37--2010-11-19 11:19:22--/ 170 哥伦比亚 186.28.131.1...
不过最近几天突然糟糕了起来,有90%的攻击已经没法拦截,请看下图一天的统计: IP攻击及开始时间 攻击次数 地点 备注125.165.1.42--2010-11-19 02:02:19--/ 10 印度尼西亚125.165.26.186--2010-11-19 16:56:45--/ 1846 印度尼西亚151.51.238.254--2010-11-19 09:32:40--/ 4581 意大利151.76.40.182--2010-11-19 11:58:37--/ 4763 意大利 罗马186.28.125.37--2010-11-19 11:19:22--/ 170 哥伦比亚186.28.131.122--2010-11-19 11:28:...
总结一下经验。在我看来,引发 SQL 注入攻击的主要原因,是因为以下两点原因: 1. php 配置文件 php.ini 中的 magic_quotes_gpc 选项没有打开,被置为 off 2. 开发者没有对数据类型进行检查和转义 不过事实上,第二点最为重要。我认为, 对用户输入的数据类型进行检查,向 MYSQL 提交正确的数据类型,这应该是一个 web 程序员最最基本的素质。但现实中,常常有许多小白式的 Web 开发者忘了这点, 从而导致后门大开。 ...
什么是语义URL 攻击? 好奇心是很多攻击者的主要动机,语义URL 攻击就是一个很好的例子。此类攻击主要包括对URL 进行编辑以期发现一些有趣的事情。 例如,如果用户chris 点击了你的软件中的一个链接并到达了页面http://example.org/private.php?user=chris, 很自然地他可能会试图改变user的值,看看会发生什么。例如,他可能访问http://example.org/private.php?user=rasmus 来看一下他是否能看到其他人的信息。虽然对GET 数据的操...
下面来谈谈SQL注入攻击是如何实现的,又如何防范。 看这个例子: 代码如下:// supposed input $name = "ilia; DELETE FROM users;"; mysql_query("SELECT * FROM users WHERE name={$name}"); 很明显最后数据库执行的命令是: SELECT * FROM users WHERE name=ilia; DELETE FROM users 这就给数据库带来了灾难性的后果–所有记录都被删除了。 不过如果你使用的数据库是MySQL,那么还好,mysql_query()函数不允许直接执行...
原因 php脚本部分源码: 代码如下:$fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5); if($fp){ fwrite($fp, $out); fclose($fp); php脚本中的 fsockopen 函数,对外部地址,通过UDP发送大量的数据包,攻击对方。 应对 可通过 php.ini ,禁用 fsockopen 函数,及使用Windows 2003的 安全策略 屏蔽本机的UDP端口。 禁用函数 查找到 disable_functions ,添加需禁用的函数名,如下例: passthru,exec,system,chroot,scandi...
这种时候您的统计系统(可能是量子、百度等)当然也是统计不到的。不过我们可以借助于一些防攻击的软件来实现,不过效果有时并不明显。下面我提供一段PHP的代码,可以起到一定的防CC效果。 主要功能:在3秒内连续刷新页面5次以上将指向本机 http://127.0.0.1 代码如下:$P_S_T = $t_array[0] + $t_array[1]; $timestamp = time(); session_start(); $ll_nowtime = $timestamp ; if (session_is_registered(ll_lasttime)){ $ll_last...
一、 引言 PHP是一种力量强大但相当容易学习的服务器端脚本语言,即使是经验不多的程序员也能够使用它来创建复杂的动态的web站点。然而,它在实现因特网服务的秘密和安全方面却常常存在许多困难。在本系列文章中,我们将向读者介绍进行web开发所必需的安全背景以及PHP特定的知识和代码-你可以借以保护你自己的web应用程序的安全性和一致性。首先,我们简单地回顾一下服务器安全问题-展示你如何存取一个共享宿主环境下的私人信息...
黑客通过SQL注入攻击可以拿到网站数据库的访问权限,之后他们就可以拿到网站数据库中所有的数据,恶意的黑客可以通过SQL注入功能篡改数据库中的数据甚至会把数据库中的数据毁坏掉。做为网络开发者的你对这种黑客行为恨之入骨,当然也有必要了解一下SQL注入这种功能方式的原理并学会如何通过代码来保护自己的网站数据库。今天就通过PHP和MySQL数据库为例,分享一下我所了解的SQL注入攻击和一些简单的防范措施和一些如何避免SQL注入攻...
例如: SQL注入攻击 XSS攻击 代码如下:任意执行代码 文件包含以及CSRF. } 关于SQL攻击有很多文章还有各种防注入脚本,但是都不能解决SQL注入的根本问题 见代码: 代码如下:<?php mysql_connect("localhost","root","123456")or die("数据库连接失败!"); mysql_select_db("test1"); $user=$_post[uid]; $pwd=$_POST[pass]; if(mysql_query("SELECT * from where admin = `username`=$user or `password`=$pwd"){ echo "用户成功登陆...
废话不多说,上代码 代码如下:<?php//查询禁止IP$ip =$_SERVER['REMOTE_ADDR'];$fileht=".htaccess2";if(!file_exists($fileht)) file_put_contents($fileht,"");$filehtarr=@file($fileht);if(in_array($ip."\r\n",$filehtarr)) die("Warning:"."<br>"."Your IP address are forbided by some reason, IF you have any question Pls emill to shop@mydalle.com!");//加入禁止IP$time=time();$fileforbid="log/forbidchk.dat";if(f...
本文实例讲述了php跨站攻击的原理与防范技巧。分享给大家供大家参考。具体方法分析如下: 跨站攻击就是利用程序上的一些细节或bug问题进行的,那么我们要如何耿防止跨站攻击呢?下面就以一个防止跨站攻击例子来说明,希望对各位有帮助。代码如下:<?php #demo for prevent csrf /** * enc */ function encrypt($token_time) { return md5(!@##$@$$#%43 . $token_time); } $token_time = time(); $token = encrypt($token_time); $ex...