Category: PHP

PHP学习笔记

0

Centos 升级 PHP7

这两天升级了下VPS的PHP7,原来是5.3.3。 System: CentOS release 6.7 (Final)

1

利用JSONP解决跨域问题

什么是跨域? 简单的来说,出于安全方面的考虑,javascript不能访问其他服务器上的内容,即“同源策略”(参考1,参考2)。跨域就是通过某种手段绕过同源策略去访问不同服务器上的内容。只要域名、端口、协议任何一个不同,就是不同的域。协议或端口不同只能通过后端来解决。

0

mac配置Apache+php+mysql

前言 周末购置了一台Macbook Pro,所以准备将所有的工作环境都慢慢的迁移到Mac上来,简单的使用了一下,确实不错,用户体验真的是非常好。目前在学习PHP相关的开发,就需要配置PHP的开发环境,网上对Macbook上配置PHP开发环境的文件比较少,我上网查了一些资料,自己通过这篇文章做一个总结,希望对后来的同学们有点用。

PHP $_GET $_REQUEST 为空 1

PHP $_GET $_REQUEST 为空

刚才遇到一个很奇怪的问题——$_REQUEST无法获取GET参数,一开始以为是PHP配置的问题,后来打印$_GET也是空,所以猜想不是PHP的问题,也许是Nginx的问题。

如何更改WordPress首页文章摘要字数 14

如何更改WordPress首页文章摘要字数

有些WordPress主题首页摘要字数太多,有的甚至把全部文字展示出来,看着很不爽,于是搜了一下如何更改,果然让我搜到了,哈哈,真是黄天不负有心人。

php实现各种排序算法 2

php实现各种排序算法

一、冒泡 广告 未完待续。。。 大宝日记版权所有,转载必究,博客地址http://www.sundabao.com/php%E5%AE%9E%E7%8E%B0%E5%90%84%E7%A7%8D%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/。

1

解决PHP substr 截取汉字乱码问题

php用substr截取中文时经常会出现乱码,因为utf-8下汉字是3字节的,如果截取长度正好是3的倍数应该不会出现乱码,可是如果你要截取的字符串中有空格,或者其他字符(比如 “ ”),也会出现乱码。

php mb_substr和mb_strcut的用法 1

php mb_substr和mb_strcut的用法

php用substr截取中文时经常会出现乱码,php给出官方的解决方案是用 mb_substr或mb_strcut,需要在php.ini在把php_mbstring.dll打开,但是有时无法更改服务器,可以自己写一个方法。

web常见攻击七–夸站脚本攻击(XSS) 3

web常见攻击七–夸站脚本攻击(XSS)

我是在dvwa(Damn Vulnerable Web App)上学到的这些东西,我把dvwa安装在了我的免费空间上,有兴趣的可以看看。DVWA 想要用户名和密码的可以联系我:sq371426@163.com dvwa 用的验证是google提供的,详情见google CAPCTHE 跨站脚本攻击就是用户在类似留言本上发布html/js代码,当浏览此留言时,脚本就会执行。 我们来看完全没有防御的代码 对数据直接输出,如果用户发布” ,就惨烈 了。 下面代码修复了这个漏斗 用str_replace将html标签替换掉,这样就可以有效防止xss攻击了。可是用户就是要发布script呢? 我们来看下面这段代码 用htmlspecialchars($_GET[‘name’]),这样就可以将html标签当做文本输出了。

web常见攻击六——文件上传漏洞 2

web常见攻击六——文件上传漏洞

  文件上传漏洞就是对用户上传的文件类型判断不完善,导致攻击者上传非法类型的文件,从而对网站进行攻击。 以上传图片为例进行介绍,下面来看初级的程序。 这段程序没有对图片类型及大小进行任何判断,就对文件进行上传,很容易产生文件攻击。 下面这段程序对文件大小及类型进行验证 很多人都会用$uploaded_type == “image/jpeg”对图片类型进行验证,可是这样依然是不安全的。 安全的图片验证类型可以这样写$uploaded_ext == “jpg” || $uploaded_ext == “JPG” || $uploaded_ext == “jpeg” || $uploaded_ext == “JPEG”),呵呵,也不难是吧,其实有些事情就这么简单,只是我们不知道而已。

web常见攻击五--sql注入(sql Injection) 0

web常见攻击五--sql注入(sql Injection)

我是在dvwa(Damn Vulnerable Web App)上学到的这些东西,我把dvwa安装在了我的免费空间上,有兴趣的可以看看。DVWA 想要用户名和密码的可以联系我:sq371426@163.com dvwa 用的验证是google提供的,详情见google CAPCTHE SQL注入,简而言之,就是攻击者在输入字符串中注入sql语句,在设计不良的程序中忽略了检查,那么这些被注入的sql指令就被数据库服务器当做正常的sql语句运行,从而造成攻击。 下面以输入id查询用户为例,简述sql语句攻击。点击这里查看实例 来看下面这段代码 初学者都会写这样的代码,能够实现基本功能,在正常情况下没有任何问题。可是无法防止sql注入,因为没有对数据进行任何过滤处理。 下面这这段代码修复了这个漏洞 这段代码对用mysql_real_escape_string对数据进行了过滤,保证没有异常sql符号。一般情况下这样就可以了,可是前面我们说这是用id来查询用户,id肯定是数字了,我们是否要对数字本身也进行验证呢,答案是肯定的。“ 我们来看更安全的程序 不仅对对数据进行了过滤,还对id进行了是否是数字进行了验证,这样就可以有效防止sql注入了。 当然这只是一中特殊情况,还有很多各种各样的sql注入攻击形势,推荐几篇好的sql注入文章 血腥!实况转播SQL注入全过程,让你知道危害有多大。 http://www.php.net/manual/zh/security.database.sql-injection.php 广告

web常见攻击四 –不安全的验证码机制(Insecure CAPCTHE)

web常见攻击四 –不安全的验证码机制(Insecure CAPCTHE)

我是在dvwa(Damn Vulnerable Web App)上学到的这些东西,我把dvwa安装在了我的免费空间上,有兴趣的可以看看。DVWA 想要用户名和密码的可以联系我:sq371426@163.com dvwa 用的验证是google提供的,详情见google CAPCTHE 这里所谓的不安全的验证码机制是指对前台获得的验证码在后台验证不够全面引起的安全问题,呵呵,这里比较绕口是吧 下面我们来看一下不安全的代码 也许初学者都会这样的代码,但是自习看一看,这段代码存在一个致命的漏洞——虽然在第一步对验证码进行了验证,但是在第二部分却没有对验证码的有效性进行验证。 下面这段代码修复了这个漏洞 到这里这段代码算是比较安全的了,但是仔细想想还是觉得这段代码哪里不对劲,是否过于冗余了呢。 下面我们来看精简安全的代码 广告

web安全三——跨站请求伪造攻击(Cross Site Request Forgery (CSRF)) 2

web安全三——跨站请求伪造攻击(Cross Site Request Forgery (CSRF))

暴力破解(Brute Force) 命令注入攻击(Command Injection Execution) CSRF就是跨站请求伪造攻击,你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,修改你的密码,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。 这里以修改您的密码介绍CSRF。 一、先看看没有任何安全防御的代码。 这段代码直接将新密码写进数据库,没有验证用户的旧密码,也没有对http引用进行确认,这样任何别的网站都可以用你cookies对你的帐户进行CSRF攻击。 二、下面这段代码对http引用进行确认,然后再写数据库。 这段代码虽然确认了http引用,但是还是看着不爽是吧。 三、下面这段代码就比较爽了。

5

web常见攻击二——命令注入攻击(Command Injection Execution)

前面我介绍了暴力破解攻击(Brute Force), 那只是web攻击中最常见的一种,今天我介绍下命令注入攻击。   所谓的web命令攻击就是系统都用户输入的数据没有进行严格的过滤就使用,从而给黑客朋友留下了可乘之机。 对于web命令攻击我就不过多的介绍了,我给两个介绍web命令攻击的链接吧。 英文的 https://www.owasp.org/index.php/Testing_for_Command_Injection_(OWASP-DV-013) 中文的 http://www.2cto.com/Article/201208/146517.html 一 、 下面我们来看一下很危险的代码。 这段代码没有对数据进行任何过滤就直接使用,是很危险的。比如用户输入的不是正常的ip(hh.kk.lll.ii),这段代码就惨烈了。 二、下面这段代码就对数据进行了初级过滤,我们来看一下。 我们看到这段代码用str_replace函数对ip进行了过滤,就是吧非法字符替换成了空字符。可是处理不了这种情况,ee.ee.ee.ee str_replace函数介绍 三、下面我们来看安全的代码 这段代码验证了所获得ip是否是数字组成的,而且全面非法ip执行,是最安全的代码。 stripslaches函数的使用 explode函数的使用 stristr函数使用 shell_exec函数使用

7

web常见攻击一——暴力破解(Brute Force)

本人也是php新手,也许写的有错,望大神指出。 所谓的暴力破解攻击就是攻击者无限次尝试用户名和密码,试图登录网站。 如果攻击者无限次的尝试,肯定会把密码尝试出来,所以我们只能把代码写好,尽可能防止这种情况的发生。另外建议朋友们把密码设的复杂一些,这样就会给攻击者增加破解难度。 1、下面是安全性最低的代码,根本没有对用户输入做任何处理,直接操作数据库。这样是非常危险的,很容易被攻击。 2、下面中等安全的代码,可以看到笔者用mysql_real_escape_string()函数处理用户信息,这样可以有效防止用户输入非法sql语句,可是处理不了其他的非法字符(如\).mysql_real_escape_string()使用 3、下面是安全性比较高的代码,可以看到笔者先用stripslashes()函数过滤用户输入,然后再用mysql_real_escape_string()对用户输入进行sql语句过滤。stripslashes()的使用

(转)PHP stripslashes() 函数的使用 2

(转)PHP stripslashes() 函数的使用

PHP stripslashes() 函数 PHP String 函数 定义和用法 stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。 语法 stripslashes(string) 参数 描述 string 必需。规定要检查的字符串。 提示和注释 注释:该函数用于清理从数据库或 HTML 表单中取回的数据。 例子 输出: Who’s John Adams? 广告

(转)php防sql攻击—— mysql_real_escape_string 的使用 0

(转)php防sql攻击—— mysql_real_escape_string 的使用

定义和用法 mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。 下列字符受影响: \x00 \n \r \ ‘ “ \x1a 如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。 语法 mysql_real_escape_string(string,connection) 参数 描述 string 必需。规定要转ԌEԌon 可选。规定 MySQL 连接。如果未规定,则使用上一个连接。 说明 本函数将 string 中的特殊字符转义,并考虑到连接的当前字符集,因此可以安全用于 mysql_query()。 提示和注释 提示:可使用本函数来预防数据库攻击。 例子 例子 1 例子 2...

几点PHP建站安全性建议 0

几点PHP建站安全性建议

一、必须要对外部数据和用户输入数据进行检测 对于web程序来说,第一件事就是不能相信外部数据。(外部数据–不是程序员在程序中直接给出的数据) 例如对于来自POST表单的数据是不能直接使用的,必须经过处理才能使用。(当然要怎样处理要有您自己来决定啦) 例如 二、要禁用php中安全性措施难以展开的设置 在php程序中为了避免变量的混用,要把register_globals关掉 即register_globals=Off,register_globals介绍 三、 代码要清晰 代码一 代码二 你肯定喜欢第二段代码吧。当然看到第二段代码你就很清楚的看到第二段代码的问题了。 四、防止sql注入 对于表单获得的用户的输入,必须要经过处理才能用于sql语句。 如以下是sql语句,使用mysql_real_escape_string($pw)函数 这样就可以有效防止sql注入了。 广告

php   die() 的用法 3

php die() 的用法

在php文件中,如果你想从某行代码起直到结尾都不执行,就可以用die()方法。 例如 die();(适合调试用)