首页
网站首页
公司简介
资讯中心
推荐内容
返回顶部
php生成静态页面,PHP中的代码安全和SQL
发布时间:2019-12-29 03:13
浏览次数:

一,文章列表问题: 在数据库中创建字段,记录文件名,每生成一个文件,将自动生成的文件名存入数据库,对于推荐文章,只需指向存放静态文件的指定文件夹中的该页面即可。利用PHP操作处理文章列表,存为字符串,生成页面时替换此字符串即可。如,在页面中放置文章列表的表格加入标记{ articletable },而在PHP处理文件中:

在现在各种黑客横行的时候,如何实现自己php代码安全,保证程序和服务器的安全是一个很重要的问题,我随便看了下关于php安全的资料,并不是很多,至少比asp少多了,呵呵,于是就想写点东西,来防止这些可能出现的情况。这里没有太深的技术含量,我只是比较简单的谈了谈。(以下操作如无具体说明,都是基于PHP+MySQL+Apache的情况)先来说说安全问题,我们首先看一下两篇文章: 上面文章是安全焦点上的关于PHP安全的文章,基本上比较全面的介绍了关于PHP的一些安全问题。在PHP编码的时候,如果考虑到一些比较基本的安全问题,首先一点:1. 初始化你的变量为什么这么说呢?我们看下面的代码:if ($admin){ echo ''登陆成功!''; include(''admin.php'');}else{ echo ''你不是管理员,无法进行管理!'';}好,我们看上面的代码好像是能正常运行,没有问题,那么加入我提交一个非法的参数过去呢,那么效果会如何呢?比如我们的这个页是 ,那么我们提交:,呵呵,你想一些,我们是不是直接就是管理员了,直接进行管理。当然,可能我们不会犯这么简单错的错误,那么一些很隐秘的错误也可能导致这个问题,比如最近暴出来的phpwind

突然接到Packt publishing的邮件,内容是关于Object-Orientated Programming with PHP5的书评。以前从来没有做过书评,对于评论的样式内容结构的不合理,在此对读者表示歉意。

?phpphp文章_分页代码 //为了避免重复包含文件而造成错误,加了判断函数是否存在的条件:if(!function_exists(pageft)){ /function pageft($totle,$displaypg=20,$url=''){

Code: $title = 拓迈国际测试模板; $file = TwoMax Inter test templet,author:_MaxMatrix@Two_Max;

1.3.6论坛有个漏洞,导致能够直接拿到管理员权限,就是因为有个$skin变量没有初始化,导致了后面一系列问题。那么我们如何避免上面的问题呢?首先,从php.ini入手,把php.ini里面的register_global

off,就是不是所有的注册变量为全局,那么就能避免了。但是,我们不是服务器管理员,只能从代码上改进了,那么我们如何改进上面的代码呢?我们改写如下:$admin = 0; // 初始化变量if ($_POST[''admin_user''] $_POST[''admin_pass'']){ // 判断提交的管理员用户名和密码是不是对的相应的处理代码 // ... $admin = 1;}else{ $admin = 0;}if ($admin){ echo ''登陆成功!''; include(''admin.php'');}else{ echo ''你不是管理员,无法进行管理!'';}那么这时候你再提交 就不好使了,因为我们在一开始就把变量初始化为 $admin = 0 了,那么你就无法通过这个漏洞获取管理员权限。2. 防止SQL Injection (sql注射)SQL 注射应该是目前程序危害最大的了,包括最早从asp到php,基本上都是国内这两年流行的技术,基本原理就是通过对提交变量的不过滤形成注入点然后使恶意用户能够提交一些sql查询语句,导致重要数据被窃取、数据丢失或者损坏,或者被入侵到后台管理。基本原理我就不说了,我们看看下面两篇文章就很明白了:那么我们既然了解了基本的注射入侵的方式,那么我们如何去防范呢?这个就应该我们从代码去入手了。我们知道Web上提交数据有两种方式,一种是get、一种是post,那么很多常见的sql注射就是从get方式入手的,而且注射的语句里面一定是包含一些sql语句的,因为没有sql语句,那么如何进行,sql语句有四大句:select 、update、delete、insert,那么我们如果在我们提交的数据中进行过滤是不是能够避免这些问题呢

内容简要概述,这本书的章节是:面向对象(OOP)与程序设计(PS:应该是面向过程吧)(什么是OOP?,为什么要OOP?, 两者的区别等等)开始 OOP (对象(封装),继承,多态等等)高级OOP (使用 PHP 函数,异常,迭代等等)设计模式Design Patterns (Strategy, Singleton, Adapter, Observer, Decorator etc)(这里就不译了)反射和单元测试(phpUnit)Standard PHP Library (著名的SPL)OOP数据库 (MySQLi, PDO, 数据持久层Abstraction layers - PEAR::MDB2, ADODB and Active Record)OOP和XML (SimpleXML, xpath, Dom)MVC / Frameworks针对初/中水平开发人员

//定义几个全局变量: //$page:当前页码;//$firstcount:查询的起始项;//$pagenav:页面导航条代码,函数内部并没有将它输出;//$_SERVER:读取本页URL$_SERVER[REQUEST_URI]所必须。global $page,$firstcount,$pagenav,$_SERVER;

$fp = fopen (temp.html,r); $content = fread ($fp,filesize (temp.html)); $content .= str_replace ({ file },$file,$content); $content .= str_replace ({ title },$title,$content); // 生成列表开始 $list = ''''; $sql = select id,title,filename from article; $query = mysql_query ($sql); while ($result = mysql_fetch_array ($query)){ $list .= ''''.$result[''title''].''''; } $content .= str_replace ({ articletable },$list,$content); //生成列表结束 // echo $content; $filename = test/test.html; $handle = fopen ($filename,w); //打开文件指针,创建文件 /* 检查文件是否被创建且可写 */ if (!is_writable ($filename)){ die (文件:.$filename.不可写,请检查其属性后重试!); } if (!fwrite ($handle,$content)){ //将信息写入文件 die (生成文件.$filename.失败!); } fclose ($handle); //关闭指针 die (创建文件.$filename.成功!);?

支持适当的介绍了 SPL (Standard PHP Library)介绍了 PDO, PEAR::MDB2, AdoDB and MySQLi介绍了主要的面向对象设计模式介绍了MVC和frameworks(框架)

$GLOBALS[displaypg]=$displaypg;

反对只有250页不够深入很多语法错误,希望在出版的时候能够改正这些错误。有很多拼写错误 (e.g. s/Mehod()/Method())有些例子很差(请见下文)十页的篇幅去讲PHPUnit API,在最后讲使用框架开发一个项目,我觉得应该利用一部分篇幅将一个主要的框架,例如zend或者codeignitor。话虽如此,我觉得这本书还是不错的,尤其是能学到别人怎么解决问题,这对于初中级开发人员会有很大的帮助。

if(!$page) $page=1;

友情链接: 网站地图
Copyright © 2015-2019 http://www.nflfreepicks.net. 新葡萄京娱乐场网址有限公司 版权所有