mac下mcrypt扩展解决

如果使用php自带的加密算法,其中需要这个mcrypt扩展,各种编译通不过。。后来干脆下在一个

点击下载mcrypt.so

然后修改

sudo vi /etc/php.ini

添加:(记住把你下载那个so放在这个目录里面!)

extension_dir=”/usr/lib/php/extensions/no-debug-non-zts-20090626/”
extension=mcrypt.so

然后重启apache即可

Mac OS X安装php工作环境

1.安装Apche

Sudo apachectl start

2.开启php支持

sudo vi /etc/apache2/httpd.conf

找到LoadModule php5_module libexec/apache2/libphp5.so 去掉前面的#

3.编辑PHP.ini

sudo cp /etc/php.ini.default /etc/php.ini

4.重启Aache测试环境

sudo apachectl restart

编写文件 sudo vi /Library/WebServer/Document/i.php内容是

<?php

echo phpinfo();

?>

5.配置网站根目录到/var/www(注意这里的www是我自己建立的,因为我习惯使用这个目录)

sudo vim /etc/apache2/httpd.conf

文档最后添加:

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot /var/www

ServerName localhost

<Directory />

Options FollowSymLinks

AllowOverride All

</Directory>

<Directory /var/www>

Options Indexes FollowSymLinks

AllowOverride All

Order allow,deny

allow from all

</Directory>

</VirtualHost>

6.安装mysql

http://www.mysql.com/downloads/mysql/

下载dmg的可以直接安装

安装教程http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.html

安装之后mysqlroot密码貌似是空的

需要使用/usr/local/mysql/bin/mysqladmin -u root password “mypass”;

7.安装zendstudi教程http://www.evget.com/zh-CN/Info/catalog/18264.html

备注:使用PHP连接MySQL可能会报错“Can’t connect to local MySQL server through socket ‘/var/mysql/mysql.sock’”,或者使用localhost无法连接MySQL而需要127.0.0.1,原因是连接时候php默认去找/var/mysql/mysql.sock了,但是MAC版本的MYSQL改动了文件的位置,放在/tmp下了。处理办法是按如下修改php.ini:

mysql.default_socket = /tmp/mysql.sock

mysql管理工具使用MySQL Workbench的安装

或者使用phpmyadmin或者使用navaicat

如果phpmyadmin提示2002错误,修改confin.inc.php

将$cfg[‘Servers’][$i][‘host’] = ‘localhost’;
改为$cfg[‘Servers’][$i][‘host’] = ‘127.0.0.1’;

手把手教你,隐藏apache以及php版本信息

玩过linxu的筒子都知道这个命令

curl –head www.0377joyous.com

[root@Joyous ~]# curl –head www.0377joyous.com
HTTP/1.1 200 OK
Date: Thu, 09 Aug 2012 11:27:47 GMT
Server: Apache/2
X-Powered-By: PHP/5.2.17
X-Pingback: http://www.0377joyous.com/xmlrpc.php
Vary: Accept-Encoding,User-Agent
Content-Type: text/html; charset=UTF-8

这样可以看到服务器用apache以及php是5.2.17

当然你觉得没有必要隐藏这些信息,那就别向下看了~~

Continue reading

xss攻击

xss攻击简介:

XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被骇客用来编写危害性更大的phishing攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

写一个简单的例子(当然这个不算是攻击,只能算是恶作剧罢了)

比如:做了一个表单

<form action=”” method=”post”>
内容:<input name=”te” type=”text”><br>
<input name=”sub” value=”提交” type=”submit”>
</form>

然后在下面获取到提交的内容

php代码我们一般这样写:

if(isset($_POST)){
$a=$_POST[‘te’];
echo $a;//或者存入数据库
}

这样如果在表单中提交这样的代码(<script>window.alert(‘弹出,弹出’);</script>)

是不能提交的!!可是我们需要存入数据库啊!!不能提交怎么办?如果你数据库中直接存入这样数据~~~你输出出来看看~~

第一:先解决存入数据库的问题

将提交的数据经过$a=htmlspecialchars($_POST[“te”]);处理,这样的数据就可以存入数据库中!!

第二:我就想把数据库中存入<script>window.alert(‘弹出,弹出’);</script>这样的数据库,你看怎么办!!!

解决办法:前面我总结过html处理函数中htmlspecialchars对应的一个函数htmlspecialchars_decode

附:存入数据库的函数需要经过htmlspecialchars处理!