在线临时改变 php.ini 内容的值

 更新时间:2016年11月25日 16:08  点击:2117

临时修改php.ini文件

ini_set("项目","值");

ini_set("output_buffering","0");
ob_start();
 



 

 在本系列文章中,我们将全面探讨如何在PHP开发环境中全面阻止SQL注入式攻击,并给出一个具体的开发示例。

  一、 引言

  PHP是一种力量强大但相当容易学习的服务器端脚本语言,即使是经验不多的程序员也能够使用它来创建复杂的动态的web站点。然而,它在实现因特网服务的秘密和安全方面却常常存在许多困难。在本系列文章中,我们将向读者介绍进行web开发所必需的安全背景以及PHP特定的知识和代码-你可以借以保护你自己的web应用程序的安全性和一致性。首先,我们简单地回顾一下服务器安全问题-展示你如何存取一个共享宿主环境下的私人信息,使开发者脱离开生产服务器,维持最新的软件,提供加密的频道,并且控制对你的系统的存取。

  然后,我们讨论PHP脚本实现中的普遍存在的脆弱性。我们将解释如何保护你的脚本免于SQL注入,防止跨站点脚本化和远程执行,并且阻止对临时文件及会话的"劫持"。

  在最后一篇中,我们将实现一个安全的Web应用程序。你将学习如何验证用户身份,授权并跟踪应用程序使用,避免数据损失,安全地执行高风险性的系统命令,并能够安全地使用web服务。无论你是否有足够的PHP安全开发经验,本系列文章都会提供丰富的信息来帮助你构建更为安全的在线应用程序。

  二、 什么是SQL注入

  如果你打算永远不使用某些数据的话,那么把它们存储于一个数据库是毫无意义的;因为数据库的设计目的是为了方便地存取和操作数据库中的数据。但是,如果只是简单地这样做则有可能会导致潜在的灾难。这种情况并不主要是因为你自己可能偶然删除数据库中的一切;而是因为,当你试图完成某项"无辜"的任务时,你有可能被某些人所"劫持"-使用他自己的破坏性数据来取代你自己的数据。我们称这种取代为"注入"。

  其实,每当你要求用户输入构造一个数据库查询,你是在允许该用户参与构建一个存取数据库服务器的命令。一位友好的用户可能对实现这样的操作感觉很满意;然而,一位恶意的用户将会试图发现一种方法来扭曲该命令,从而导致该被的扭曲命令删除数据,甚至做出更为危险的事情。作为一个程序员,你的任务是寻找一种方法来避免这样的恶意攻击。

  三、 SQL注入工作原理

  构造一个数据库查询是一个非常直接的过程。典型地,它会遵循如下思路来实现。仅为说明问题,我们将假定你有一个葡萄酒数据库表格"wines",其中有一个字段为"variety"(即葡萄酒类型):

  1. 提供一个表单-允许用户提交某些要搜索的内容。让我们假定用户选择搜索类型为"lagrein"的葡萄酒。

  2. 检索该用户的搜索术语,并且保存它-通过把它赋给一个如下所示的变量来实现:

  $variety = $_POST[''variety''];

  因此,变量$variety的值现在为:

  lagrein

  3. 然后,使用该变量在WHERE子句中构造一个数据库查询:

  $query = "SELECT * FROM wines WHERE variety=''$variety''";

  所以,变量$query的值现在如下所示:

  SELECT * FROM wines WHERE variety=''lagrein''

  4. 把该查询提交给MySQL服务器。

  5. MySQL返回wines表格中的所有记录-其中,字段variety的值为"lagrein"。
  到目前为止,这应该是一个你所熟悉的而且是非常轻松的过程。遗憾的是,有时我们所熟悉并感到舒适的过程却容易导致我们产生自满情绪。现在,让我们再重新分析一下刚才构建的查询。

  1. 你创建的这个查询的固定部分以一个单引号结束,你将使用它来描述变量值的开始:

  $query = " SELECT * FROM wines WHERE variety = ''";

  2. 使用原有的固定不变的部分与包含用户提交的变量的值:

  $query .= $variety;

  3. 然后,你使用另一个单引号来连接此结果-描述该变量值的结束:

  $ query .= "''";

  于是,$query的值如下所示:

  SELECT * FROM wines WHERE variety = ''lagrein''
  这个构造的成功依赖用户的输入。在本文示例中,你正在使用单个单词(也可能是一组单词)来指明一种葡萄酒类型。因此,该查询的构建是无任何问题的,并且结果也会是你所期望的-一个葡萄酒类型为"lagrein"的葡萄酒列表。现在,让我们想象,既然你的用户不是输入一个简单的类型为"lagrein"的葡萄酒类型,而是输入了下列内容(注意包括其中的两个标点符号):

  lagrein'' or 1=1;

<

歌道“最近比较烦”,我云“最近比较忙”,但无论烦与忙,都不能阻止我对技术的追求,亦不能打断我要做中国开源事业的脚步。

作为我提出已久的jwork框架,终于,于2007年未,形成了php第一版。

Jwork框架分为三种语言:
Java版
.Net版
PHP版

目前,java和.net版处于研发阶段。php版jwork v1.0 for php初步计划于2008年2月1日正式开源。

Jwork框架的特点:
1、和其它框架相比,Jwork框架不需配置,不改变原有开发习惯。
2、Jwork框架是开发的经验集,集成了软件中开发中常用的API。
3、Jwork框架集成了Jpage分页,AJAX,HTML编辑器等。
4、充分提高开发效率,便于小组开发、协同开发。


Jwork v1.0 for php
jwork v1.0 for php是用于php开发的一个框架集。现将其功能简介如下:

1、集成Jpage,最优化的分页方案。
Jpage解决了海量和普通查询的需求,优化了软件结构,一句sql即可分页,为互联网上现有的最佳分页解决方案。

2、集成数据层DAO,最简单的数据操作。
一般而言,开发必要操作数据库。开发php就意味着要对mysql操作。出于此,Jwork框架v1.0集成了对mysql操作的封装。
对于插入数据,不需要写sql语句,只需指定列名,控件名即可。
对于修改数据,可实现表单自动回填,不需去给控件赋值。

3、集成了ajax框架,一句话即可实现ajax。
随着web2.0的发展,ajax的应用越来越广,jwork框架采用最原始、清晰的ajax实现,即简单方便的实现了ajax,又让ajax的各过程清晰可见。

4、集成众多研发者的多年开发经验。
jwork框架的一些工具类,时间类、上传类、邮箱类等API,集成了众多研发者的Java、.NET、PHP、ASP的web开发经验,你在开发中常遇到需求实现,在jwork框架中均有收录。

5、集成了开发中常用的JS和PHP验证方法,如email格式、手机格式、身份证格式的验证。
时间就是金钱,提供开发效率,不但可以让你收获财富,更可以让你轻松应对开发工作。



Jwork部分演示:


添加、修改演示:

function Add()
{
 $data = new MysqlDao(); 
 $filed="code_name,code_lang,user_id,

 

因为php4早就end了,所以是有必要切换到php5的了,所以有时调试需要整合一下了

做了一个脚本,让他们批处理一下就能自动切换了,方便的说

环境:

window XP SP2 +apache2.2.6 + PHP4.4.7 +PHP5.2.5

PHP4目录:E:webphp4

PHP5目录:E:webphp5

APACHE目录:E:webApache2.2

 

1.需要两个apache的httpd.conf文件,,因为apache2.2.6对php4.47支持不好,所以要另外加插件了.(参考:http://pakapaka.jp/softwareinfo/146.html)

php4的为: httpd_php4.conf

PHP5为:httpd_php5.conf

2. 准备两个批处理文件就可以了

变成php4:

 



copy php.ini c:windows
copy php4ts.dll c:windows
copy php4ts.lib c:windows
copy E:webApache2.2confhttpd_php4.conf E:webApache2.2confhttpd.conf

net stop apache2.2
net start apache2.2

 

 

变成php5

 



del  c:windowsphp.ini
del c:windowsphp4ts.dll 
del  c:windowsphp4ts.lib

copy E:webApache2.2confhttpd_php5.conf E:webApache2.2confhttpd.conf

net stop apache2.2
net start apache2.2

 

 

当然以上目录都是放在php4根目录下的,你只要根据目录修改就可以了



CGI&PHP

向CGI传递数据
===============================================
环境变量 REQUEST_METHOD
GET:
<a href="cgi-bin/myprog.exe?lname=blow&fname=joe">
QUERY_STRING
POST:由form产生传递的数据
-环境变量CONTENT_LENGTH表明长度
-CGI程序从stdin读入数据
===============================================

其他有用的环境变量
===============================================
HTTP_USER_AGENT 浏览器的软件版本
REMOTE_ADDRESS 浏览器的IP地址
REMOTE_HOST 浏览器的机器名
===============================================

CGI输出的数据
===============================================
非分析头标
-HTTP/1.0 200 OK
-Server:NCSA/1.0a6
-Content-type:text/html
-...
===============================================

内容类型MIME   text/css
===============================================
Application
Audio
Image
Text
Video
Multipart

===============================================


PHP
========================================================================
基本语法
===============================================
1 <?php echo("if you want to serve XHTML or XML documents,do you liken");?>
2 <? echo("this is the simplest,an SGML processing instructionn")?>
  <?=expression?>This is a shortcut for"<?echo expression?>"
3 <script language="php">
    echo("some editors(like FrontPage) don''t like processing instruction");
  </script>
4 <%echo("You may optionally use ASP-style tags");%>
  <%=$variable;#This is a shortcut for"<%echo ..."%>
===============================================

数据类型
===============================================
四种标量类型
 布尔型 boolean
 整型 integer
 浮点型 float
 字符串 string 可以用单引号 双引号 定界符
两种复合类型
 数组 array
 对象 object
最后是两种特殊类型
 资源 resource
 NULL
===============================================

定界符
===============================================
$str=<<<EOD
Example of string
spanning multiple lines
usin

<
[!--infotagslink--]

相关文章

  • PowerShell读取文件内容、替换文件内容、读取限定行的例子

    这篇文章主要介绍了PowerShell读取文件内容、替换文件内容、读取限定行的例子,本文使用3个例子来说明实现这3个需求的操作技巧,需要的朋友可以参考下...2020-06-30
  • 实例解析jQuery中如何取消后续执行内容

    本文主要介绍了jQuery中取消后续执行内容的实例,代码通俗易懂。需要的朋友来看下吧...2016-12-02
  • js innerHTML 改变div内容

    在做ajax无刷新时,我想很多朋友都会知道js innerHTML来更改 div 或table里面的值哦. JavaScript的innerHTML 永远不知道你可以改变的内容,一个HTML元素?也许你要...2016-09-20
  • JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法

    多网站的需要填写的文本框在默认状态下都会给出一个默认的提示语言,当鼠标点击此文本框的时候能够将里面的默认文本清除,当删除输入的文本且焦点离开文本框的时候再将默认的文本写入文本框...2016-01-14
  • php更新修改excel中的内容例子

    本例子不是读取Excel或生成新的Excel,而是读取现有的Excel文件,然后修改Excel中的数据,就像修改mysql中数据一样的哦。 代码如下 ...2016-11-25
  • 安卓7.1.1更新内容大全

    本文主要讲了安卓7.1.1系统更新的主要内容,有兴趣的朋友快来看一看吧! 虽然你的Android设备可能还都没吃上棉花糖,但谷歌可是已经发布了最新的Android 7.1.1,如果是N...2016-12-15
  • 设置php.ini 脚本超时方法

    设置php教程.ini 脚本超时方法 设置有二种 方法一,在php.ini里面设置 max_execution_time = 1800 ; 当前上面方法可以利用ini_set("选项","值"), ini_set(''max_e...2016-11-25
  • Zend系列产品的php.ini配置

    [Zend] ; zend optimizer & zend debugger 冲突,不能同时共存 ;;;;;;;;;;;;;;; zend optimizer ;;;;;;;;;;;;;;;;; ;zend_extension_manager.optimizer_ts="...2016-11-25
  • ASP.net(C#)从其他网站抓取内容并截取有用信息的实现代码

    ASP.net(C#)从其他网站抓取内容并截取有用信息的实现代码,需要的朋友可以参考下。...2021-09-22
  • PHP将HTML转换成纯文本内容实例

    把html转换成纯文本我们可以使用很多方法,不过最简单的就是使用strip_tags函数,但是还有一些朋友会发现可以使用自定义函数过滤掉,下面整理了一些方法。 将HTML转换...2016-11-25
  • php.ini禁止 phpinfo()不运行方法

    我们只要在php教程.ini增加 disable_functions =phpinfo php.ini里引入了一项功能disable_functions , 这个功能比较有用,可以用它禁止一些函数。比如在php.ini里加上...2016-11-25
  • php.ini 配置心得(上传等限制)

    php.ini 配置心得,一般需要修改的地方,要不无法上传大文件等。...2016-01-27
  • 中文php.ini下

    ;;;;;;;;;;;;;;;;; ; Data Handling ; ;;;;;;;;;;;;;;;;; variables_order = "EGPCS" ; 这条指示描述了PHP 记录 ; GET, POST, Cooki...2016-11-25
  • php中php.ini-dist和php.ini-recommended文件区别

    在php解压包文件中我们地发现有两个php.ini文件,php.ini-dist和php.ini-recommended了,那么这两个文件使用 是什么呢,下面我来给大家简单介绍 在Windows下安装PHP,通...2016-11-25
  • 利用C++如何覆盖或删除指定位置的文件内容

    这篇文章主要给大家介绍了关于利用C++如何覆盖或删除指定位置的文件内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。...2020-04-25
  • 中文PHP.INI(2)

    ;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; include_path = ; include 路径设置,UNIX: "/path1:/path2" Windows: "p...2016-11-25
  • Mysql临时表及分区表区别详解

    这篇文章主要介绍了Mysql临时表及分区表区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-10
  • 在线临时改变 php.ini 内容的值

    临时修改php.ini文件ini_set("项目","值");ini_set("output_buffering","0"); ob_start();  在本系列文章中,我们将全面探讨如何在PHP开发...2016-11-25
  • Java连接mysql数据库并进行内容查询的方法

    下面小编就为大家带来一篇Java连接mysql数据库并进行内容查询的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25