Exchange_proxy是由go语言开发的Exchange安全代理,可以将内网的Exchange服务器的https服务安全地发布出去, 支持的功能如下:
在使用该系统前,需要确保有以下基础设施的接口,并完成与代理的对接:
以上接口准备并对接完成后,正确配置conf/app.ini即可启动代理服务器了。
[mail] hosts = mail.xiaomi.com,mail.sec.lu backend = https://10.10.10.10 port = 443 ssl = true cert = certs/ca.crt key = certs/ca.key ; debug level: Fatal, Error, Warn, Info, Debug debug_level = info [redis] host = 10.10.10.20 port = 6379 db = 0 password = redis_passw0rd [otp] url = https://otp_api_url/chk_otp [sms] url = http://sms_api_url/api/send_sms header = X-SMS-Token key = token [user_info] user_phone = http://hr_api_url/findMobile active_url = https://mail.sec.lu/a/
配置文件说明:
mail节下的配置项是配置邮箱服务器本身的
redis节表示redis服务器的配置
otp节为动态口令检测API的URL
sms节表示短信接口的API
user_info节下的user_phone表示查找手机的接口,active_url表示手机中激活连接的URL
设置好配置文件后,可通过./main
直接启动代理服务器,如下图所示:
WEB通过外网访问WEB端时,要求必须输入正确的OTP口令才可以登录,如下图所示:
通过手机端访问时,只有通过短信中的提示激活后,方可收发邮件,如下图所示:
正式上线之前,最好提供相应的管理后台并与内网的管理系统对接,邮件代理管理后台提供以下功能:
设备数据保存在redis中,用go/python/php等语言都可以实现,我就不单独提供了。
代理系统的进程可以托管在supervisor或god中,部署了该系统后,可以解决邮件服务器手机端与WEB端的安全,目前的开源版本没有电脑端的安全代理功能,建议在PC端收发邮件时拨入VPN,或者在电脑中用BlueMail客户端收发邮件。
Proxy 这个词的原意是代理,可以理解成,在目标对象之前架设一层“拦截”,外界对该目标对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。 let proxy = new Proxy(target,handler); Proxy对象由两个部分组成:target、handler target:目标对象 handler:是一个对象,声明了代理target的指定行为,
in my Lab,the net is Education Research net, I need to use a proxy for getting access to foreign country site. and sometimes the proxy of our school is not work well,but I still have a good friend's p
Ext.data.proxy.Ajax代理是一个在应用程序中使用最为广泛的服务端代理,采用Ajax方式通过请求指定的URL来读写数据,但是不能跨域读取数据,如果需要读取跨域数据可以使用Ext.data.proxy.JsonP代理。 Ext.onReady(function () { //创建数据模型 Ext.regModel("Person", { file
exchange 描述 (Description) 它原子地替换原子对象的值并获得先前保存的值。 声明 (Declaration) 以下是std :: atomic :: exchange的声明。T exchange( T desired, std::memory_order order = std::memory_order_seq_cst ); C++11T exchange( T desir
Warning: the information on this page is not "official". In September 2018, Intel IT published their official page at https://wiki.ith.intel.com/display/proxy/Proxy+Users+Guide+Home WPAD automatic con
Putty.exe -D 1080 URL Login Go to Firefox Tools -> Options -> Advanced -> Network -> Setting -> Manual proxy configuration SOCKS Host = www.example.com ; Port = 1080
Proxy 代理 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”,即对编程语言进行编程。 讲通俗一点就是扩展(增强)了对象,方法(函数)的一些功能 ES6 原生提供 Proxy 构造函数,用来生成 Proxy 实例。 Proxy其实是设计模式的一种,代理模式 1. 语法使用 直接通过操作代理对象来操作原对象 new Proxy(target,handle)
Proxy 对象用于定义基本操作的自定义行为(如属性查找、赋值、枚举、函数调用等)。说白了就是对目标进行代理! 操作语法: // 创建代理,指定代理对象和代理对象操作对象 let py1 = new Proxy(target, handler) 参数:target 要使用 Proxy 包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。 handler 一个通常以函数作为属
@GetMapping("/putByText") @ApiOperation(value = "远程更新资源", position = 1, httpMethod = "GET", response = Result.class) public Result putByText(@ApiParam(value = "text参数", name = "text") @RequestParam(na
问题内容: 除了迷惑之外,还有其他方法可以防止罐子被其他人打开吗?问题是我不希望任何人访问代码,这就是为什么我不喜欢Java。从我使用的反编译器来看,用C#和Java编写的程序具有完好无损的功能,就像变量名一样,这使得访问非免费程序变得容易。更糟糕的是,给出源代码。 问题答案: 上面的评论涵盖了大多数这些要点,但是我将在这里对其进行扩展: 如果您的代码在用户的计算机上运行,则用户可以反编译您的
Rust 主要魅力是它强大的静态行为保障。不过安全检查天性保守:有些程序实际上是安全的,不过编译器不能验证它是否是真的。为了写这种类型的程序,我们需要告诉编译器稍微放松它的限制。为此,Rust 有一个关键字,unsafe。使用unsafe的代码比正常代码有更少的限制。 让我们过一遍语法,接着我们讨论语义。unsafe用在两个上下文中。第一个标记一个函数为不安全的: unsafe fn danger
第一章 SonarQube简介 1.1 SonarQube介绍 Sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量 通过插件形式,可以支持包括 java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy,HTML,Python,PHP,XML等等二十几种编程语言的代码质量管理与检测 Sonar可以从以下七个维度检测代码质量 不遵循代码标准 sonar可以
当C#被unsafe修饰符标记时,C#允许在代码块的函数中使用指针变量。 unsafe code或非托管代码是使用pointer变量的代码块。 Note - 要在codingground执行本章中提到的程序,请在Project 》》 Compile Options 》》 Compilation Command设置编译选项。 mcs *.cs -out:main.exe -unsafe" Point
当代码段被 unsafe 修饰符标记时,C# 允许该代码段中的函数使用指针变量,故使用了指针变量的代码块又被称为不安全代码或非托管代码。 注意: 若要在 codingground 中执行本章的程序,请将 Project >> Compile Options >> Compilation Command to 中的编辑项设置为 mcs *.cs -out:main.exe -unsafe” 指针 指
问题内容: 在javadoc中,ConcurrentHashMap如下: 检索操作(包括get)通常不会阻塞,因此可能与更新操作(包括put和remove)重叠。检索反映了自启动以来最新完成的更新操作的结果。对于诸如putAll和clear的聚合操作,并发检索可能仅反映某些条目的插入或删除。同样,迭代器和枚举返回的元素反映了在创建迭代器/枚举时或此后某个时刻哈希表的状态。他们不抛出Concurre
我在Azure Service Bus中使用代理消息传递(主题/订阅),我很好奇如何(或者是否)使用SSL保护通信。
安全在Web应用开发中是一项至关重要的话题,Django提供了多种保护手段和机制: