https://www.cnblogs.com/qiufeng2014/p/14779399.html
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;
分类:
UniGui学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律