如果使用php自带的加密算法,其中需要这个mcrypt扩展,各种编译通不过。。后来干脆下在一个
然后修改
sudo vi /etc/php.ini
添加:(记住把你下载那个so放在这个目录里面!)
extension_dir=”/usr/lib/php/extensions/no-debug-non-zts-20090626/”
extension=mcrypt.so
然后重启apache即可
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’;
玩过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
当然你觉得没有必要隐藏这些信息,那就别向下看了~~
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处理!