zoukankan      html  css  js  c++  java
  • 彻底取消unigui /server页面及扩展应用

    unigui的应用默认会在/server显示相关信息,unigui编译的应用不能简单设置就可以取消/server页面,经验证,在UniServerModule.UniGUIServerModuleHTTPCommand拦截/server就可以取消server页面:

    procedure TUniServerModule.UniGUIServerModuleHTTPCommand(ARequestInfo: TIdHTTPRequestInfo;
      AResponseInfo: TIdHTTPResponseInfo; var Handled: Boolean);
    begin
        if ARequestInfo.URI.ToLower='/server' then
        begin
           Handled := true;
           AResponseInfo.ResponseNo:=405;
           AResponseInfo.CloseConnection:=true;
           AResponseInfo.ContentText :='Access denied';
           AResponseInfo.CloseSession;
           exit;
        end;
    end;
    

    拦截处理前:

    拦截处理后:

    另外:可以扩展为拦截指定路径,提高服务端的安全性。

    procedure TUniServerModule.UniGUIServerModuleHTTPCommand(ARequestInfo: TIdHTTPRequestInfo;
      AResponseInfo: TIdHTTPResponseInfo; var Handled: Boolean);
    begin
        if (length(ARequestInfo.URI)>1) and //放行指定的白名单
        (copy(ARequestInfo.URI.ToLower,1,4)<>'/ext') and //放行指定的白名单
        (copy(ARequestInfo.URI.ToLower,1,4)<>'/uni') and //放行指定的白名单
        (copy(ARequestInfo.URI.ToLower,1,7)<>'/handle') and //放行指定的白名单
        (copy(ARequestInfo.URI.ToLower,1,6)<>'/cache') and //放行指定的白名单
        (copy(ARequestInfo.URI.ToLower,1,2)<>'/m') then //放行指定的白名单
    {
        if (copy(ARequestInfo.URI.ToLower,1,7)='/server') or //拦截/server
        (copy(ARequestInfo.URI.ToLower,1,2)='/ui') or //拦截/ui
        (copy(ARequestInfo.URI.ToLower,1,6)='/files') or //拦截/files
        (copy(ARequestInfo.URI.ToLower,1,13)='/uploadfolder') then //拦截/uploadfolder
    }
        begin
          Handled := true;
          AResponseInfo.ResponseNo:=405;
          AResponseInfo.CloseConnection:=true;
          AResponseInfo.ContentText :='Access denied';// '<h1>Access denied</h1>';
          AResponseInfo.CloseSession;
          exit;
        end;
    end;
  • 相关阅读:
    独立博客,从零到千万访问,这三年我都做了什么
    Postman使用详解
    Postman安装与使用
    Python爬虫入门教程:超级简单的Python爬虫教程
    《完全用Linux工作》——转载自清华退学博士
    转:一篇搞定Python正则表达式
    文件上传的单元测试怎么写?
    功能性测试分类
    ajax 学习笔记 timer控件
    ajax 学习笔记 updatepannel控件
  • 原文地址:https://www.cnblogs.com/qiufeng2014/p/14779399.html
Copyright © 2011-2022 走看看