zoukankan      html  css  js  c++  java
  • .Net中Freetextbox_1.6.3的使用与ftb.imagegallery.aspx安全修正

    .Net中Freetextbox的使用方法与安全补丁。
      在.Net项目中编辑器使用Freetextbox的占有一定的比重,说去编辑器的选择不得不说的产品,Freetextbox堪称第一款开源免费.Net编辑器,在使用上比较简单,拥有较全的功能以及多语言支持而得到广大开发人员的青睐。
      虽是初学.Net,但是由于以往对ASP的项目开发在编辑器上遗留下了很大的弊端,使得我这次不得不精心挑选,在51aspx上询问各位大侠得知了Freetextbox是个不错的选择,便拿来试了试,在使用时发现的一些注意事项作为备忘写了下来。
      Freetextbox官方站点:http://freetextbox.com/
      最新版本是 4.0Beta 不过国内大部分开发人员使用的是Freetextbox 1.6.3 中文版,当然我也不例外。
      Freetextbox 1.6.3中文版下载地址:http://www.51aspx.com/CV/M67HNQANDQU37/  (含源码)
      1.6.3文件如下:
      
      
      使用方法:
      1、把bin文件夹下的FreeTextBox.dll拷贝到项目Bin文件夹中;
      2、把images文件夹下的ftb文件夹拷贝到项目Images文件夹中;
      3、把HelperScripts文件夹拷贝到项目根目录下;
      4、text.aspx用作测试,也可以一同拷贝到项目根目录下;
      5、在项目目录下新建一个Uploads目录用于存放上传文件。
      树形结构大致如下,原项目中的文件保持不变:
      项目目录(可以是虚拟目录)
      ├bin(目录)
      │ └ FreeTextBox.dll
      ├images(目录)
      │ └ftb(目录中还有3套风格以及3个文件夹样式图标)
      ├HelperScripts(目录中含有3个ASPX文件)
      ├Uploads(目录)
      └test.aspx
      运行项目,访问Test.Aspx文件,即可看到Freetextbox编辑器了,如果不能看到的话还需要设置一下路径,测试页面我们就不多设置了,直接到项目需要使用编辑器的页面来。
      在页面头部添加引用:
      

    程序代码 程序代码
    <%@ Register TagPrefix="ftb" Namespace="FreeTextBoxControls" ssembly="FreeTextBox" %>


      在页面的适当位置插入代码:
      

    程序代码 程序代码
    <ftb:freetextbox id="FreeTextBox1" runat="server" allowhtmlmode="True" buttondownimage="True" buttonpath="../images/ftb/office2003/" helperfilespath="../HelperScripts" startmode="DesignMode" toolbarbackgroundimage="True" toolbarlayout="FontFacesMenu,FontSizesMenu,FontForeColorsMenu|Bold,Italic,Underline,Strikethrough,Superscript,Subscript,RemoveFormat;Print|JustifyLeft,JustifyRight,JustifyCenter,JustifyFull;BulletedList,NumberedList,Indent,Outdent|CreateLink,Unlink,InsertImageFromGallery,InsertTable,InsertRule;Cut,Copy,Paste,Delete,Undo,Redo,WordClean" width="550"></ftb:freetextbox>


      其中红色显示部分为相对路径,需根据当前页面的位置修改,绿色显示部分为控件ID可自由设置,toolbarlayout是工具栏工具设置,这里设置的是常用工具,需要修改的话可到网上搜索下全部的按钮信息。
      另外需在"<%@ page "中设置validateRequest的值为false,不然会提示“请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。”。
      
      安全设置:
      改变默认上传路径:用编辑器打开ftb.imagegallery.aspx文件,第17行修改默认的起始文件夹为Uploads;
      发现Freetextbox1.6.3的图片浏览文件ftb.imagegallery.aspx没有设置访问权限,最好在Page_Load下设置用户登入验证,在百度中搜索了下inurl:ftb.imagegallery.aspx,一打图片肉鸡出现在眼前,虽然ftb.imagegallery.aspx在客户端与服务端独有上传文件格式验证,只能上传图片,但任何人访问这个地址就能做上传删除等操作,未免太荒谬了点,所以必须做登入验证,方法如下:
      编辑ftb.imagegallery.aspx,在
      

    程序代码 程序代码
    private void Page_Load(object sender, System.EventArgs e) {
      string isframe = "" + Request["frame"];


      下面添加你站点的验证,验证不通过直接跳回首页或登入页面,这个验证代码各站点不同,需自己编写,一般都是session验证或cookies验证。
      能在图片目录下上传删除还不止,当把路径修改下就是另外一片文件夹了,点开刚百度到得连接“http*****.cn/helps/ftb.imagegallery.aspx?frame=1”在地址后面加上&rif=..&cif=..在访问,整个网站的目录就呈现在眼前了,下面有上传删除等按钮,哪天网站的后台文件夹整个被人删除了还不晓得为什么。修正方式如下:
      找到

    程序代码 程序代码
    if (cif != "" && rif != "") {


      把RootImagesFolder.Value = rif;替换成
      

    程序代码 程序代码
    //*****************************
      RootImagesFolder.Value = DefaultImageFolder;
      Array srtArray = cif.Split('//');
      string str = srtArray.GetValue(0).ToString();
      if (str != DefaultImageFolder)
      {
      cif = DefaultImageFolder;
      }
      cif = cif.Replace("..//", "").Replace("../","");
      //防止越级查看文件 by Yation.Team - 2009/07/17


      Freetextbox上传图片是直接保留原文件名的,这个地方做个修改,上传文件使用时间串做文件名。修改方式如下:
      找到

    程序代码 程序代码
    UploadFileName = UploadFileName.Substring(UploadFileName.LastIndexOf("//")+1);


      在其下面添加以下代码
      

    程序代码 程序代码
    //*********************
      UploadFileName = DateTime.Now.ToString() + UploadFileName.Remove(0, UploadFileName.LastIndexOf("."));
      UploadFileName = UploadFileName.Replace(":", "").Replace("-", "").Replace(" ", "");
      //by Yation.Team 2009/7/17  上传文件用时间重命名
  • 相关阅读:
    高可用-mysql安装,双主模式+keepalived
    源码-mybatis-01-SqlSessionFactory创建
    J.U.C-volatile
    设计模式-模板设计模式(行为)
    设计模式-代理模式
    线程-join();
    Net Core 文件的上传下载
    mysql 开启日志记录执行SQL语句
    C# 方法多个返回值
    C# get set 方法 设置默认值
  • 原文地址:https://www.cnblogs.com/jackljf/p/3589099.html
Copyright © 2011-2022 走看看