var Login = (function () {
var lang = {
timeout: "登录超时",
loginfailed: "登录失败",
infoerror: "输入信息有误",
pleaseName: "请输入用户名",
pleasePW: "请输入密码",
sqlattach: "输入信息有误",
loading: "正在登录,请稍后...",
pleaseCAPTCHA: '请输入验证码'
};
var declaration = "";//许可协议内容
if (__permission == "") {
document.getElementsByClassName('input_div_checkbox')[0].style.display = 'none';
document.getElementById('is_checked').value = 'on';
} else {
declaration = '
' + __permission + '许可及服务协议
《' + __permission + '许可及服务协议》(以下简称“本协议”)由您与360企业安全集团服务提供方共同缔结,本协议具有合同效力。请您务必审慎阅读、充分理解本协议各条款内容,特别是免责条款,免责条款可能以黑色加粗形式提示您的注意。
本协议是您与360企业安全集团订立的关于安装、复制、下载或使用本软件的法律协议,亦适用于本软件后续版本及升级版本。您可依据您与360企业安全集团签署的有效书面许可协议获得本软件的非独占性使用许可,但本软件的知识产权权属及其他一切权益始终仅归属于360企业安全集团。
除非您已阅读并接受本协议所有条款,否则您无权安装、复制、下载或使用本软件。您使用本软件即将视您已阅读并同意签署本协议,表示您同意接受本协议各项条款的约束。如果您不同意本协议中的条款,请不要安装、复制、下载或使用本软件及其相关文档。
1. 定义:
您:又称“用户”,指通过购买或任何其他方式获得本软件的主体,可以是自然人、法人、政府机构或其他组织。
360企业安全集团:指北京奇安信科技有限公司、网神信息技术(北京)股份有限公司、北京网康科技有限公司。
本软件:指预装或记载于360企业安全集团防火墙产品中的软件。
2. 权利声明
除特别声明外,本软件的一切知识产权,以及与本软件相关的所有信息内容,包括但不限于:文字表述及其组合、图标、图饰、图像、图表、色彩、界面设计、版面框架、有关数据、附加程序、印刷材料或电子文档等与本软件相关的信息均为360企业安全集团所有,受著作权法和国际著作权条约以及其他知识产权法律法规的保护。
3. 许可范围
3.1 在您依据与360企业安全集团签订的《产品购销合同》或类似商业合同获得360企业安全集团产品所有权及产品许可证后,本协议授予您,且仅授予您对本软件及相关文档的非独占性的使用许可,允许您在法律法规允许的范围内使用本软件,但您需遵守本协议的各项条款。
3.2 如果您是通过非正常渠道获得本软件,则不享有本协议内的任何授权及服务,请立即停止使用并销毁本软件。360企业安全集团保留对使用盗版软件行为追究法律责任的一切权利。
3.3 您无论在任何时候或任何条件下均无权转让本软件或其中的任一部分,也不得将本软件或其中的任一部分进行转授。
4. 权利限制
4.1 禁止反向工程、反向编译和反向汇编:您不得对本软件产品进行反向工程(ReverseEngineer)、反向编译(Decompile)或反向汇编(Disassemble),同时不得改动编译在程序文件内部的任何资源。除法律、法规明文规定允许上述活动外,您必须遵守此协议限制。
4.2 您应在遵守法律及本协议的前提下使用本软件。您无权实施包括但不限于下列行为:
- 4.2.1 删除或者改变本软件上的所有权利管理电子信息;
- 4.2.2 故意避开或者破坏著作权人为保护本软件著作权而采取的技术措施;
- 4.2.3 利用本软件误导、欺骗他人;
- 4.2.4 违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行;
- 4.2.5 未经允许,进入计算机信息网络或者使用计算机信息网络资源;
- 4.2.6 未经允许,对计算机信息网络功能进行删除、修改或者增加;
- 4.2.7 未经允许,对计算机信息网络中存储、处理或者传输的数据和应用程序进行删除、修改或者增加;
- 4.2.8 破坏本软件系统或网站的正常运行,故意传播计算机病毒等破坏性程序;
- 4.2.9 其他任何危害计算机信息网络安全的行为。
4.3 组件分割:本软件产品是作为一个单一产品而被授予许可使用,您不得将各个部分分开用于任何目的。
4.4 个别授权:如需进行商业性的销售、复制、分发,包括但不限于软件销售、预装、捆绑等,必须获得360企业安全集团的书面授权和许可。
4.5 保留权利:本协议未明示授权的其他一切权利仍归360企业安全集团所有,您使用其他权利时必须获得360企业安全集团的书面同意。
5. 软件的修改和升级
5.1 360企业安全集团享有为本软件增加附加特点和功能的权利,或者提供程序修补、更新和升级的权利。您承认和同意,360企业安全集团没有义务向您提供本软件及相关文档的任何后续版本或升级版本,除非您已购买该后续版本或升级版本,或360企业安全集团在《产品销售合同》或类似商业合同中与您另有约定。
5.2 本软件具有自动升级IPS特征库、应用识别库、病毒特征库、URL资源库、ISP信息库、区域库、操作系统识别库和威胁情报库的功能,以便及时为您提供最新数据,如果您无需自动升级上述特征库,可在本软件的“系统配置->升级管理->特征库升级”中关闭自动升级功能。
5.3 本软件具有自动进行应急响应的功能,以便您能及时处理随时爆发的信息安全事件,如果您无需自动进行应急响应,可在本软件的“系统配置->协同防护->云联防”中关闭自动应急响应功能。
5.4 本软件具有自动升级本地威胁情报库和情报云检测的功能,以便及时为您提供最新数据,如果您无需自动升级该特征库能力,可在本软件的“系统配置->协同防护->云联防”中关闭本地库自动升级和威胁情报云检测功能。
6. 隐私权保护
6.1 360企业安全集团承诺遵守《360用户隐私保护白皮书》以及适用法律的规定。
6.2 本软件会连接360网神天御云(以下简称“天御云”)下载升级特征库,此时软件会向天御云提供当前硬件和软件版本的相关信息,信息用于确定所需要的升级文件。
6.3 本软件默认开启天御云提供的云防功能(部分云防功能需要对应功能模块许可支持),该功能会向天御云提供流量解析后的部分信息,这些信息为云防功能必要的原始信息,若无这些信息将无法提供云防功能。如果您不需要云防功能,可在本软件的“系统配置->协同防护->云联防”中关闭。
6.4 如果您购买了天御云的云镜功能,则本软件将会向天御云上报相关日志。您可以在本软件的“系统配置->云镜”选择上报日志类型,但您的配置将会影响天御云的云镜功能精准度。
6.5 如果您购买了威胁情报功能,则本软件将会向天御云上报威胁情报日志,这是为了提高威胁情报在您企业环境中的适应性。
6.6 360企业安全集团制定了严格的用户上传信息处理规则和安全保护措施来确保不超越目的和范围收集用户信息,确保您上传信息的安全,确保您上传的信息不被滥用。除征得您明确同意和法律明确规定外,360企业安全集团不会向任何第三方提供您上传的文件及信息。
6.7 360企业安全集团制定了以下四项隐私权保护原则,指导我们处理产品中涉及到的用户隐私权和用户信息保护等方面的问题:
- (1) 利用我们收集到的信息为用户提供有价值的产品和服务。
- (2) 开发符合隐私权保护标准和隐私权保护惯例的产品。
- (3) 将个人信息的收集透明化,并由权威第三方监督。
- (4) 尽最大的努力保护我们掌握的信息。
6.8 如您有疑问,或者申请查询、修改本软件收集的信息,请联系【邮箱:kefu@360.net】。
7. 免责与责任限制
7.1 本软件经过详细的测试,但不能保证与所有的软硬件系统完全兼容,不能保证本软件完全没有错误。如果出现不兼容及软件错误的情况,您可拨打技术支持电话(电话:4008-136-360)将情况报告360企业安全集团,获得技术支持。
7.2 对因使用或不能使用本软件所产生的损害及风险,包括但不限于直接或间接的个人损害、商业赢利的丧失、贸易中断、商业信息的丢失或任何其它经济损失,360企业安全集团不承担任何责任。
7.3 对于因电信系统或互联网网络故障、计算机故障或病毒、信息损坏或丢失、计算机系统问题或其它任何不可抗力原因而产生的损失,360企业安全集团不承担任何责任。
7.4 对于您违反本协议规定,给360企业安全集团公司造成损害的,360企业安全集团将有权采取包括但不限于中断使用许可、停止提供服务、限制使用、法律追究等措施。
7.5 对于从非360企业安全集团指定站点下载的本软件产品以及从非360企业安全集团发行的介质上获得的本软件产品,360企业安全集团无法保证该软件是否感染计算机病毒、是否隐藏有伪装的特洛伊木马程序或者黑客软件,使用此类软件,将可能导致不可预测的风险,建议您不要轻易下载、安装、使用,360企业安全集团不承担任何由此产生的一切法律责任。
8. 法律及争议解决
8.1 本协议适用中华人民共和国法律。
8.2 因本协议引起的或与本协议有关的任何争议,各方应友好协商解决;协商不成的,任何一方均可将有关争议提交至北京仲裁委员会并按照届时有效的仲裁规则仲裁;仲裁裁决是终局的,对各方均有约束力。
9. 其他条款
9.1 如果本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力,或违反任何适用的法律,则该条款被视为无效,但本协议的其余条款仍应有效并且有约束力。该等条款应在可能的范围内予以解释并在法律准许的最大限度内被执行以实现原意,且如果该等解释或执行不被法律准许,则该等条款应视为可与本协议分割。
9.2 360企业安全集团有权随时根据有关法律、法规的变化以及公司经营状况和经营策略的调整等修改本协议。修改后的协议会在360企业安全集团网站(www.360.net)上公布,并随附于新版本软件。当发生有关争议时,以最新的协议文本为准。如果不同意改动的内容,您可以自行停止使用本软件。如果您继续使用本软件,则视为您接受修改后的协议。
9.3 360企业安全集团在法律允许的最大范围内对本协议拥有解释权与修改权。
';
}
var tip = $('.tip'), mask = $('.mask')[0], btns = $('#language_select_btn'), captcha = $("#captcha"), name = $("#name"), pwd = $("#password"), pwdVal = $("#passwordVal"), is_checked = $('#is_checked');
function $(str) {
if (/^#(.+)/.test(str)) {
return document.getElementById(str.substr(1));
}
if (/^\.(.+)/.test(str)) {
return document.getElementsByClassName(str.substr(1));
}
}
$.ajax = {
// 初始化xmlhttpRequest
init: function () {
var xhr = null;
// 针对不同浏览器建立这个对象的不同方式写不同代码
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
//针对某些特定版本的Mozillar浏览器的BUG进行修正
if (xhr.overrideMimeType) {
xhr.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) {
//兼容IE新老版本 ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
var activexName = ['MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
for (var i = 0; i < activexName.length; i++) {
try {
xhr = new ActiveXObject(activexName[i]);
break;
} catch (e) {
}
}
}
return xhr;
},
//合并对象,把传进来的对象与初始化的对象进行合并
extend: function (destination, source, override) {
if (undefined == override) override = true;
if (typeof destination != "object" && typeof destination != "function") {
if (!override)
return destination;
else
destination = {};
}
var property = '';
for (property in source) {
if (override || !(property in destination)) {
destination[property] = source[property];
}
}
return destination;
},
// json to string {name: 'lisi', age: 10} --> name=lisi&age=10
json2String: function (jsonData) {
var strArr = [];
for (var k in jsonData) {
strArr.push(k + "=" + jsonData[k]);
}
return strArr.join("&");
},
// 发送http 请求
request: function (opt) {
var _self = $.ajax,
xhr = _self.init(),
isTimeout = false,
timeFlag = 0,
options = {
url: "", // string
data: "", // json or string
method: "POST",
receiveType: "html", // html json or xml
timeout: 3000,
async: true,
success: function (data) {
},
error: function (xhr) {
}
};
if ("data" in opt) {
if (typeof opt.data == "string") {
}
else {
opt.data = _self.json2String(opt.data);
}
}
options = _self.extend(options, opt);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (!isTimeout && xhr.status == 200) {
clearTimeout(timeFlag);
var t = options.receiveType.toLowerCase();
if (t == "html") {
options.success(xhr.responseText);
} else if (t == "xml") {
options.success(xhr.responseXML);
} else if (t == 'json') {
try {
var obj = JSON.parse(xhr.responseText);
options.success(obj);
} catch (e) {
var str = xhr.responseText; //json字符串
options.success(eval(str));
}
} else {
}
} else {
clearTimeout(timeFlag);
options.error(xhr);
}
}
};
timeFlag = setTimeout(function () {
if (xhr.readyState != 4) {
isTimeout = true;
xhr.abort();
clearTimeout(timeFlag);
}
}, options.timeout);
xhr.open(options.method.toUpperCase(), options.url, options.async); //打开与服务器连接
if (options.method.toUpperCase() == "POST") {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); //post方式要设置请求类型
xhr.send(options.data); //发送内容到服务器
} else {
xhr.send(null);
}
}
};
//表单提交
function form_submit() {
var name = $("#name").value;
var oldPassword = $("#password").value;
var captcha = $("#captcha").value;
// pwd.value = new Array(oldPassword.length+1).join('●');
// pwd.type = 'text';
name = base(utf16to8(escape(name)));
password = base(utf16to8(escape(oldPassword)));
clearShowMsg();
if (name == "") {
showMsg(lang.pleaseName, tip[0]);
is_error_change(oldPassword);
return;
} else if (password == "") {
showMsg(lang.pleasePW, tip[0]);
is_error_change(oldPassword);
return;
} else if (captcha == '') {
showMsg(lang.pleaseCAPTCHA, tip[1]);
is_error_change(oldPassword);
return;
}
var data = {
name: name,
password: password,
captcha: captcha,
is_checked: is_checked.value
};
$.ajax.request({
url: '/login_submit',
method: "post",
data: data,
timeout: 30000,
error: function () {
},
success: function (data) {
if (data == "success") {
window.location.href = "/";
return;
} else if (data == '1' || data == '2' || data == '3' || data == '6') {
window.location.href = "/modify";
} else if (data == '8') {
showMsg('您输入的账号或密码有误,请重新输入!', tip[0]);
} else if (data == '99') {
showMsg('您输入的验证码有误,请重新输入!', tip[1]);
} else if (data == '4') {
showMsg('管理员地址被锁定', tip[0]);
} else if (data == '5') {
showMsg('管理员账号被锁定', tip[0]);
} else if (data == 'connect.error') {
showMsg('维护中,请稍后再试', tip[0]);
}
is_error_change(oldPassword);
}
});
}
function is_error_change(oldPassword) {
change_captcha();
}
function is_form_submit() {
if (is_checked.checked && is_checked.value == 'on') {
$('#btn_submit').setAttribute('disabled', 'true');
form_submit();
} else {
$('.tooltip')[0].style.display = 'block';
}
}
//事件
captcha.onkeydown = function (e) {
$('#btn_submit').removeAttribute('disabled');
if (e.keyCode == 13) {
is_form_submit();
}
};
is_checked.onclick = function () {
if (this.checked) {
this.value = 'on';
$('.tooltip')[0].style.display = 'none';
$('#btn_submit').className += ' btn_hover';
} else {
this.value = 'off';
$('#btn_submit').className = 'login_btn';
}
};
btns.onclick = function () {
var btn = this.getElementsByTagName("span")[0];
var change = btn.getAttribute("change");
if (/off/.test(btn.getAttribute('class'))) {
btn.setAttribute("class", '');
this.getElementsByTagName("input")[0].value = 0;
btn.setAttribute("change", btn.innerHTML);
btn.innerHTML = change;
} else {
btn.setAttribute("class", 'off');
this.getElementsByTagName("input")[0].value = 1;
btn.setAttribute("change", btn.innerHTML);
btn.innerHTML = change;
}
return false;
};
name.onkeydown = function (e) {
$('#btn_submit').removeAttribute('disabled');
if (e.keyCode == 32) {
return false;
}
return true;
};
name.onkeyup = function (e) {
$('#btn_submit').removeAttribute('disabled');
var k = e.keyCode;
if (k == 32 || k == 116) {
/* space f5 */
return false;
} else if (k == 13) {
/* enter */
$("#password").focus();
} else if (k != 9) {
/* tab */
checkInfo();
}
};
pwd.oninput = function (e) {
checkInfo();
};
pwd.onkeydown = function (e) {
$('#btn_submit').removeAttribute('disabled');
if (e.keyCode == 32) {
return false;
}
return true;
};
pwd.onkeyup = function (e) {
$('#btn_submit').removeAttribute('disabled');
var k = e.keyCode,
pass = true;
if (k == 13) {
$("#btn_submit").focus();
} else if (k == 32) {
return false;
}
};
$('#captcha_img_id').onclick = function () {
change_captcha();
};
//辅助性功能函数
function checkInfo() {
if ($("#name").value == "") {
showMsg(lang.pleaseName, tip[0]);
error = true;
} else if ($("#password").value == "") {
showMsg(lang.pleasePW, tip[0]);
} else {
hideMsg();
}
return;
}
function showMsg(msg, dom) {
dom.innerHTML = msg;
dom.style.visibility = 'visible';
}
function hideMsg() {
$(".tip")[0].style.visibility = "hidden";
}
function change_captcha() {
var url = "/verify/random=" + Math.random();
$("#captcha_img_id").setAttribute("src", url);
}
function clearShowMsg() {
tip[0].innerHTML = '';
tip[1].innerHTML = '';
}
function base(str) {
var c1, c2, c3;
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var i = 0, len = str.length, string = '';
while (i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if (i == len) {
string += base64EncodeChars.charAt(c1 >> 2);
string += base64EncodeChars.charAt((c1 & 0x3) << 4);
string += "==";
break;
}
c2 = str.charCodeAt(i++);
if (i == len) {
string += base64EncodeChars.charAt(c1 >> 2);
string += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
string += base64EncodeChars.charAt((c2 & 0xF) << 2);
string += "=";
break;
}
c3 = str.charCodeAt(i++);
string += base64EncodeChars.charAt(c1 >> 2);
string += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
string += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
string += base64EncodeChars.charAt(c3 & 0x3F);
}
return string;
}
function utf16to8(str) {
var out, i, len, c;
out = "";
len = str.length;
for (i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
}
var modal = {
openModal: function () {
var modal = $('.modal')[0],
modal_body = $('.modal_body')[0];
modal_body.innerHTML = "";
modal_body.insertAdjacentHTML('beforeend', declaration);
modal.style.display = 'block';
mask.style.display = 'block';
},
closeModal: function () {
var modal = $('.modal')[0];
modal.style.display = 'none';
mask.style.display = 'none';
}
};
function agreeChecked() {
$('#is_checked').checked = 'true';
$('#is_checked').value = 'on';
modal.closeModal();
$('.tooltip')[0].style.display = 'none';
$('#btn_submit').className += ' btn_hover';
}
function is_check() {
if (is_checked.value == 'on') {
is_checked.setAttribute('checked', 'true');
$('#btn_submit').className += ' btn_hover';
} else {
is_checked.removeAttribute('checked');
}
}
if(__permission != ""){
is_check();
}
return {
is_form_submit: is_form_submit,
modal: modal,
agreeChecked: agreeChecked
};
}());