导航:首页 > 编程语言 > phpsniffer

phpsniffer

发布时间:2022-11-29 00:35:40

㈠ 关于windows下安装apache,php,mysql问题

apache吗..反正几乎是一路next就可以装好了..不过你如果装了IIS..就要注意端口问题..可能会有冲突..mysql也是.一路next,php吗..我是这么样的..
1.下载下来的php包解压..文件夹最好直接命名成php.
2.将php.ini-recommended改名为php.ini(这个是php的配置文件).放到c:\windows下(不放这里好像会有问题)
3.php.ini设置:extension_dir = "c:\php\ext"设置成你的ext文件夹的目录,去掉extension=php_mysql.dll前面的分号(加载mysql扩展).需要什么扩展可以根据需要修改.
4.apache的设置:apache安装目录下的conf文件夹下.找到httpd.conf,DocumentRoot "d:/wwwroot"
这里是你的网站的目录,
在最后添加
LoadMole php5_mole "c:/php/php5apache2_2.dll"(加载php模块)
AddType application/x-httpd-php .php (可解析的php扩展名)
AddType application/x-httpd-php-source .phps (这个不记得了.反正肯定要的)

如果发现权限不够.找到这里
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
options indexes
</Directory>
原来是deny from all改成allow from all.
最好打开apache的目录显示.
Options Indexes FollowSymLinks去掉前面的#,如果还不可以.就在上面的allow from all下面加上options indexes就OK了.

以上就是我的安装经验.不懂可以问我哦.我也是初学者.

当然你如果觉得麻烦.集成安装包也是可以的.推荐xampp这个好.

说了那么多.分给我吧.嘿嘿.

㈡ 如何上传多个文件

含义 ENCTYPE="multipart/form-data" 说明:
通过 http 协议上传文件 rfc1867协议概述,jsp 应用举例,客户端发送内容构造

1、概述在最初的 http 协议中,没有上传文件方面的功能。 rfc1867 (http://www.ietf.org/rfc/rfc1867.txt) 为 http 协议添加了这个功能。客户端的浏览器,如 Microsoft IE, Mozila, Opera 等,按照此规范将用户指定的文件发送到服务器。服务器端的网页程序,如 php, asp, jsp 等,可以按照此规范,解析出用户发送来的文件。Microsoft IE, Mozila, Opera 已经支持此协议,在网页中使用一个特殊的 form 就可以发送文件。绝大部分 http server ,包括 tomcat ,已经支持此协议,可接受发送来的文件。各种网页程序,如 php, asp, jsp 中,对于上传文件已经做了很好的封装。

2、上传文件的实例:用 servelet 实现(http server 为 tomcat 4.1.24)1. 在一个 html 网页中,写一个如下的form :

load multi files :

text field :

用户可以选择多个文件,填写表单其它项,点击“提交”按钮后就开始上传给 http://192.168.29.65/upload_file/UploadFile

这是一个 servelet 程序注意 enctype="multipart/form-data", method=post, type="file" 。根据 rfc1867, 这三个属性是必须的。multipart/form-data 是新增的编码类型,以提高二进制文件的传输效率。具体的解释请参阅 rfc18672. 服务端 servelet 的编写现在第三方的 http upload file 工具库很多。Jarkata 项目本身就提供了fileupload 包http://jakarta.apache.org/commons/fileupload/ 。

文件上传、表单项处理、效率问题基本上都考虑到了。在 Struts 中就使用了这个包,不过是用 Struts 的方式另行封装了一次。这里我们直接使用 fileupload 包。至于Struts 中的用法,请参阅 Struts 相关文档。这个处理文件上传的 servelet 主要代码如下:

public void doPost( HttpServletRequest request, HttpServletResponse response )
{
DiskFileUpload diskFileUpload = new DiskFileUpload(); // 允许文件最大长度
diskFileUpload.setSizeMax( 100*1024*1024 ); // 设置内存缓冲大小
diskFileUpload.setSizeThreshold( 4096 ); // 设置临时目录
diskFileUpload.setRepositoryPath( "c:/tmp" );
List fileItems = diskFileUpload.parseRequest( request );
Iterator iter = fileItems.iterator(); for( ; iter.hasNext(); )
{
FileItem fileItem = (FileItem) iter.next();
if( fileItem.isFormField() ) { // 当前是一个表单项
out.println( "form field : " + fileItem.getFieldName() + ", " + fileItem.getString() );
} else {
// 当前是一个上传的文件
String fileName = fileItem.getName();
fileItem.write( new File("c:/uploads/"+fileName) );
}

}}

为简略起见,异常处理,文件重命名等细节没有写出。3、 客户端发送内容构造假设接受文件的网页程序位于 http://192.168.29.65/upload_file/UploadFile.假设我们要发送一个二进制文件、一个文本框表单项、一个密码框表单项。文件名为 E:\s ,其内容如下:(其中的XXX代表二进制数据,如 01 02 03)abbXXXccc 客户端应该向 192.168.29.65 发送如下内容:

POST /upload_file/UploadFile HTTP/1.1
Accept: text/plain, */*
Accept-Language: zh-cn
Host: 192.168.29.65:80
Content-Type:multipart/form-data;boundary=---------------------------7d33a816d302b6
User-Agent: Mozilla/4.0 (compatible; OpenOffice.org)
Content-Length: 424
Connection: Keep-Alive -----------------------------7d33a816d302b6
Content-Disposition:form-data;
name="userfile1";
filename="E:\s"Content-Type:
application/octet-stream abbXXXccc
-----------------------------7d33a816d302b6

Content-Disposition: form-data;

name="text1" foo

-----------------------------7d33a816d302b6

Content-Disposition: form-data;

name="password1" bar

-----------------------------7d33a816d302b6--

(上面有一个回车)此内容必须一字不差,包括最后的回车。

注意:Content-Length: 424 这里的424是红色内容的总长度(包括最后的回车)
注意这一行:Content-Type: multipart/form-data; boundary=---------------------------7d33a816d302b6

根据 rfc1867, multipart/form-data是必须的.---------------------------7d33a816d302b6 是分隔符,分隔多个文件、表单项。

其中33a816d302b6 是即时生成的一个数字,用以确保整个分隔符不会在文件或表单项的内容中出现。前面的 ---------------------------7d 是 IE 特有的标志。

Mozila 为---------------------------71用手工发送这个例子,在上述的 servlet 中检验通过。

使用POST发送数据

以POST方式发送数据主要是为了向服务器发送较大量的客户端的数据,它不受URL的长度限制。POST请求将数据以URL编码的形式放在HTTP正文中,字段形式为fieldname=value,用&分隔每个字段。注意所有的字段都被作为字符串处理。实际上我们要做的就是模拟浏览器POST一个表单。以下是IE发送一个登陆表单的POST请求:

POST http://127.0.0.1/login.do HTTP/1.0
Accept: image/gif, image/jpeg, image/pjpeg, */*
Accept-Language: en-us,zh-cn;q=0.5
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Content-Length: 28
\r\n
username=admin&password=1234

要在MIDP应用程序中模拟浏览器发送这个POST请求,首先设置HttpConnection的请求方式为POST:

hc.setRequestMethod(HttpConnection.POST);

然后构造出HTTP正文:

byte[] data = "username=admin&password=1234".getBytes();

并计算正文长度,填入Content-Type和Content-Length:

hc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
hc.setRequestProperty("Content-Length", String.valueOf(data.length));

然后打开OutputStream将正文写入:

OutputStream output = hc.openOutputStream();
output.write(data);

需要注意的是,数据仍需要以URL编码格式编码,由于MIDP库中没有J2SE中与之对应的URLEncoder类,因此,需要自己动手编写这个encode()方法,可以参考java.net.URLEncoder.java的源码。剩下的便是读取服务器响应,代码与GET一致,这里就不再详述。

使用multipart/form-data发送文件

如果要在MIDP客户端向服务器上传文件,我们就必须模拟一个POST multipart/form-data类型的请求,Content-Type必须是multipart/form-data。

以multipart/form-data编码的POST请求格式与application/x-www-form-urlencoded完全不同,multipart/form-data需要首先在HTTP请求头设置一个分隔符,例如ABCD:

hc.setRequestProperty("Content-Type", "multipart/form-data; boundary=ABCD");

然后,将每个字段用“--分隔符”分隔,最后一个“--分隔符--”表示结束。例如,要上传一个title字段"Today"和一个文件C:\1.txt,HTTP正文如下:

--ABCD
Content-Disposition: form-data; name="title"
\r\n
Today
--ABCD
Content-Disposition: form-data; name="1.txt"; filename="C:\1.txt"
Content-Type: text/plain
\r\n

--ABCD--
\r\n

请注意,每一行都必须以\r\n结束,包括最后一行。如果用Sniffer程序检测IE发送的POST请求,可以发现IE的分隔符类似于---------------------------7d4a6d158c9,这是IE产生的一个随机数,目的是防止上传文件中出现分隔符导致服务器无法正确识别文件起始位置。我们可以写一个固定的分隔符,只要足够复杂即可。

发送文件的POST代码如下:

String[] props = ... // 字段名
String[] values = ... // 字段值
byte[] file = ... // 文件内容
String BOUNDARY = "---------------------------7d4a6d158c9"; // 分隔符
StringBuffer sb = new StringBuffer();
// 发送每个字段:
for(int i=0; i
sb = sb.append("--");
sb = sb.append(BOUNDARY);
sb = sb.append("\r\n");
sb = sb.append("Content-Disposition: form-data; name=\""+ props[i] + "\"\r\n\r\n");
sb = sb.append(URLEncoder.encode(values[i]));
sb = sb.append("\r\n");
}
// 发送文件:
sb = sb.append("--");
sb = sb.append(BOUNDARY);
sb = sb.append("\r\n");
sb = sb.append("Content-Disposition: form-data; name=\"1\"; filename=\"1.txt\"\r\n");
sb = sb.append("Content-Type: application/octet-stream\r\n\r\n");
byte[] data = sb.toString().getBytes();
byte[] end_data = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();
// 设置HTTP头:
hc.setRequestProperty("Content-Type", MULTIPART_FORM_DATA + "; boundary=" + BOUNDARY);
hc.setRequestProperty("Content-Length", String.valueOf(data.length + file.length + end_data.length));
// 输出:
output = hc.openOutputStream();
output.write(data);
output.write(file);
output.write(end_data);
// 读取服务器响应:
// TODO...

㈢ PHP中有什么好的代码自动检查工具吗

通常的PHP集成开发软件,如 PhpDesigner 、 Zend Studio、Eclipse 等等都内置有代码检查工具。如果想在外部进行PHP代码检查,可以参考以下资料:

PHP Mess Detector(
PHP项目体检工具,根据你设定的标准(如单一文件代码体积,未使用的参数个数,未使用的方法数)检查PHP代码,超出设定的标准时报警。

PHP Copy Paste Detector(
顾名思义,检查冗余代码的

PHP Dead Code Detector(
看名字就知道了,检查从未被调用过的方法

PHP Code Sniffer(
老牌代码格式化工具,PHP写的,Pear包,可自己hack,可集成到命令行里。

PHP Code Beautifier,只有Windows GUI,Windows CMD很难用

㈣ phpstorm怎么刷新文件内容

1. 点击菜单:File->Settings 或 按快捷键 Ctrl+Alt+S
2. 选择Project Settings下的:PHP->Code Sniffer
3. 设置PHP Code Sniffer(phpcs) path为:E:wampbinpearphpcs.bat
4. 点击Validate按钮,说明设置OK

㈤ mac下面问什么关掉phpstorm网站就出现502

2011年05月23日,PhpStorm 2.1 发布,商业PHP开发工具,该版本在性能和稳定性上都有重要的提升,新的Diff工具来比较目录、图像和DB的,“提取函数/方法的重构为PHP,“改变签名的重构为JavaScript,在谷歌Chrome的JavaScript调试器,htaccess支持,新代码检查:“不一致的返回点”、“愚蠢的赋值和更多,@var PHPDoc注释现在支持Netbeans / Zend风格,自动完成改进对于类的其他名称空间和无能的完成启用,HTML标签树高亮,重写UI搜索/替换Misc。改进为支持的所有风险资本家和显着的性能改进。[6]
2011年07月19日,PhpStorm发布了 2.1.2 bug 修复版本,同时发布的还有WebStorm,包含了重要的bug修复,以及在JS、PHP 和 CSS 支持上的显着性能提升,建议所有用户升级。[7]
2011年11月29日,PHPStorm 3.0 发布,带来了很多新功能和修复,一共有700改动让这个IDE变得更加易用,更加智能。[8]
2012年04月24日,PhpStorm 4.0 发布了,该版本完全兼容 PHP 5.4 特性以及支持 EMCAScript Harmony 。主要改进包括:完全支持 PHP 5.4 语言特性,支持 ECMAScript Harmony,使用 PHPUnit 的代码覆盖率,使用 PHP Code Sniffer 进行代码检查,支持 Drupal 代码风格,新的 PHP 代码检查,更智能的 JavaScript 自动完成。[9]

㈥ acid+snort+mysql+php+apache问题!

有些 snort.conf 中的 rule 要调一调,根据自己的环境来调整
像我们都跑 Linux/Sun 的环境,没有其他的, MSN 这种 rule
就完全不需要,至于像 icmp 这些几乎也都没有用处,不然你的
sensor/target (就是 snort) 一多,每天看都看不完(不看你装这个做什么)
所以,我们的 snort.conf 中的 alert rule 都压在 50 条左右,
只记录必要的都西就好.

另外,snort 也可以做 sniffer 工具,
若搭 Dynamic rule ,可以做到更 smart 的 sniffer

此外,platinum 兄对 mrtg 很熟悉,也可以透过 mrtg 将 alert 的
状况画成 mrtg 的图表哦,只要把 snort 的 db 结构看一下就知道怎么取
用了

㈦ phpstom安装phpcodesniffer插件怎么自动排版

下载PEAR文件,右键连接,选择“连接另存为”go- pear.phar即可。
安装REAR: 打开命令行工具(开始->运行->cmd)
cd c:\path\to\php\server\folder
然后运行下面命令进行安装:
php go-pear.phar
按屏幕指令完成安装。 如果使用的XAMPP则已经默认安装了PEAR和PHP_CodeSniffer。
安装PHP Code Sniffer
如果想了解得更加全面的话,可以去后盾人,那里有一些丰富的视频,你可以参考学习。

㈧ PHP如何获取需要登陆后才能看到的网页HTML代码

实际上是个模拟登陆的问题,需要写个登陆模块,解决两个问题:
1,请求登陆并刷新的函数部分:

<?php
/*****************函数部分**************************/
/*获取指定网页的内容
$url为网页地址
*/
function getcontent($url){
if($open=file($url)){
$count=count($open);
for($i=0;$i<$count;$i++)
{
$theget.=$open[$i];
}
}else{
die('请求过多,超时,请刷新');
}
return $theget;
}
?>
2,偷取程序部分,也分两部分,
1),PHP与XML不同之处是需要特殊的调用才能支持COOKIE.或者记录SessionID(后面有说明程序)

php代码如下
<?PHP
//登陆并保存COOKIE
$f = fsockopen("www.url.net",80);
$cmd = <<<EOT
GET /test/login.php?name=test&password=test HTTP/1.0

EOT;
fputs($f,$cmd);
$result = '';
$cookie = '';
$location = '';
while($line = fgets($f))
{
$result .= $line;
//取得location跟setCookie头HTTP头信息
$tmp = explode(":",$line);
if($tmp[0]=="Set-Cookie")
$cookie .= $tmp[1];
if($tmp[0]=="Location")
$location = $tmp[1];
}
fclose($f);
2),获取页面
//下面访问你要访问的页面(这部分也可以参考下面的核心例程)
$f = fsockopen("www.url.net",80);l
//下面的cookie就是发送前页保存下的的cookie
$cmd = <<<EOT
GET /test/test.php HTTP/1.0
cookie:$cookie

EOT;
fputs($f,$cmd);
while($line = fgets($f))
{
echo $line;
}
fclose($f);
?>

核心例程就是fsockopen();
不妨再给段代码你瞧瞧:
--------------------------------------------------------------------------------

function posttohost($url, $data)
{
$url = parse_url($url);
if (!$url) return "couldn't parse url";
if (!isset($url['port'])) { $url['port'] = ""; }
if (!isset($url['query'])) { $url['query'] = ""; }
$encoded = "";
while (list($k,$v) = each($data))
{
$encoded .= ($encoded ? "&" : "");
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return "Failed to open socket to $url[host]";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: $url[host]");
fputs($fp, "Content-type: application/x-www-form-urlencoded");
fputs($fp, "Content-length: " . strlen($encoded) . "");
fputs($fp, "Connection: close");
fputs($fp, "$encoded");
$line = fgets($fp,1024);
if (!eregi("^HTTP/1\\.. 200", $line)) return $line ;
$results = ""; $inheader = 1;
while(!feof($fp))
{
$line = fgets($fp,1024);
if ($inheader && ($line == "" || $line == "\r")) {
$inheader = 0;
}
elseif (!$inheader) {
$results .= $line;
}
}
fclose($fp);
return $results;
}
$data=array();
$data["msg"]="HELLO THIS IS TEST MSG";
$data["Type"]="TEXT";
echo posttohost("http://url/xxx", $data);

应该说明白了吧?
另外登陆部分还有一种简单方法是把SessionID保存下来

源代码:

<?php
/*
* 得到网页内容
* 参数:$host [in] string
* 主机名称(例如: www.url.com.cn)
* 参数:$method [in] string
* 提交方法:POST, GET, HEAD ... 并加上相应的参数( 具体语法参见 RFC1945,RFC2068 )
* 参数:$str [in] string
* 提交的内容
* 参数:$sessid [in] string
* PHP的SESSIONID
*
* @返回 网页内容 string
*/
function GetWebContent($host, $method, $str, $sessid = '')
{
$ip = gethostbyname($host);
$fp = fsockopen($ip, 80);
if (!$fp) return;
fputs($fp, "$method\r\n");
fputs($fp, "Host: $host\r\n");
if (!empty($sessid))
{
fputs($fp, "Cookie: PHPSESSID=$sessid; path=/;\r\n");
}
if ( substr(trim($method),0, 4) == "POST")
{
fputs($fp, "Content-Length: ". strlen($str) . "\r\n"); // 别忘了指定长度
}
fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n\r\n");
if ( substr(trim($method),0, 4) == "POST")
{
fputs($fp, $str."\r\n");
}
while(!feof($fp))
{
$response .= fgets($fp, 1024);
}
$hlen = strpos($response,"\r\n\r\n"); // LINUX下是 "\n\n"
$header = substr($response, 0, $hlen);
$entity = substr($response, $hlen + 4);
if ( preg_match('/PHPSESSID=([0-9a-z]+);/i', $header, $matches))
{
$a['sessid'] = $matches[1];
}
if ( preg_match('/Location: ([0-9a-z\_\?\=\&\#\.]+)/i', $header, $matches))
{
$a['location'] = $matches[1];
}
$a['content'] = $entity;
fclose($fp);
return $a;
}

/* 构造用户名,密码字符串 */
$str = ("username=test&password=test");
$response = GetWebContent("localhost","POST /login.php HTTP/1.0", $str);
echo $response['location'].$response['content']."<br>";
echo $response['sessid']."<br>";
if ( preg_match('/error\.php/i',$response['location']))
{
echo "登陆失败<br>";
} else {
echo "登陆成功<br>";
// 不可以访问user.php,因为不带sessid参数
$response = GetWebContent("localhost","GET /user.php HTTP/1.0", '', '');
echo $response['location']."<br>"; // 结果:error.php?errcode=2

// 可以访问user.php
$response = GetWebContent("localhost","GET /user.php HTTP/1.0", '', $response['sessid']);
echo $response['location']."<br>"; // 结果:user.php
}
?>

㈨ 使用Sniffer Pro进行arp攻击

。。。。。
想攻击别人还上网络问哦??
不怕被别人发现啊。。。。
呵呵。。。。。
我之前有玩过,具体步骤是这样的(这里我就只给你SYN包啦!):
先用SNIFFER抓到你与你想功击主机的通信包(最好是SYN包第一握手的,这样就省去了很多事情),点击捕到的包右键(Send Current Packet),来到编辑界面就应该没问题了,之前有玩过的话就简单啦,IP,MAC。自己的IP和MAC最好也改了它,狠点就改成被攻击的IP和MAC。。之后就等着收效果就行了。
补充:
想要学会攻击,那你必须要了解网络中的协议,还有它们在网络中存在包的格式内容,了解了这些就可以把攻击玩的好了。
下面是SNIFFER的一些使用教程和对一些协议的详解,希望对你有帮助。
http://bbs.56cto.com/viewthread.php?tid=12646

已发送教程到你的QQ...

㈩ sublime text php code sniffer 怎么用

开启调试 开启调试方式也比较简单,在想要加断点的地方右键 xdebug->Add/Remove breakpoint 这样项目在运行到本行的时候就会停止下来 然后开始调试,在菜单栏选择 tools->xdebug->start debugging(launch browser) sublime会自动打开浏览器,进...

阅读全文

与phpsniffer相关的资料

热点内容
程序员装机必备的软件 浏览:9
php微信第三方登录demo 浏览:536
上海php工具开发源码交付 浏览:790
哪里有求购黄页的源码 浏览:194
商城矿机源码矿场系统 浏览:195
单片机的led灯熄灭程序 浏览:222
洛阳python培训 浏览:702
小键盘命令 浏览:192
单片机c语言返回主程序 浏览:816
dockerpythonweb 浏览:970
程序员算法有多强 浏览:717
pythonworkbook模块 浏览:245
什么app能查医生 浏览:175
轻量级的编程语言 浏览:338
程序员那么可爱生孩子 浏览:432
后缀him3加密文件是什么软件 浏览:984
坚果隐藏app为什么要140版本才能用 浏览:313
淘宝dns服务器地址 浏览:259
领英转型app哪个好用 浏览:943
压缩软件的图标 浏览:97