|
Server : Apache System : Linux iZ6xhqomji47p1Z 5.10.134-15.al8.x86_64 #1 SMP Thu Jul 20 00:44:04 CST 2023 x86_64 User : www ( 1000) PHP Version : 8.1.30 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/fsjlkj.cn/application/admin/template/security/ |
<dl class="row">
<dt class="tit">
<label for="security_ask_open">二次验证密码</label>
</dt>
<dd class="opt">
<label class="curpoin"><input id="security_ask_open1" name="security_ask_open" value="1" type="radio" onclick="security_verify_open(this);" {if condition="!empty($security.security_ask_open)"} checked="checked"{/if}>开启</label>
<label class="curpoin"><input id="security_ask_open0" name="security_ask_open" value="0" type="radio" onclick="security_verify_open(this);" {if condition="empty($security.security_ask_open)"} checked="checked"{/if}>关闭</label>
<span class="err"></span>
<p class="notic">开启后,部分功能使用前,将进行二次问答验证</p>
</dd>
</dl>
<div id="div_security_verify" class="{if condition='empty($security.security_ask_open)'}none{/if}">
<input type="hidden" id="is_ask_add_edit" value="{empty name='$security.security_ask'}add{else /}edit{/empty}">
<textarea id="security_askanswer_content" style="display: none;">{$security_askanswer_content|default=''}</textarea>
<textarea id="security_ask_content" style="display: none;">{$security['security_ask']|default=''}</textarea>
{empty name='$security.security_ask'}
<dl class="row">
<dt class="tit">
<label for="security_ask"><em>*</em>设置安全问题</label>
</dt>
<dd class="opt" style="width: auto;">
<select name="security_ask" id="security_ask" class="w210">
<option value="-1">请选择…</option>
{volist name='$security_askanswer_list' id='vo'}
<option value="{$key}">{$vo}</option>
{/volist}
</select>
<a href="javascript:void(0);" onclick="get_ask_list(this);" class="ncap-btn ncap-btn-green">问题列表</a>
<span class="err"></span>
<p class="notic"></p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label for="security_answer"><em>*</em>设置问题答案</label>
</dt>
<dd class="opt" style="width: auto;">
<input type="text" name="security_answer" value="" id="security_answer" class="w200" autocomplete="off">
<span class="err"></span>
<p class="notic"></p>
</dd>
</dl>
{else /}
<dl class="row">
<dt class="tit">
<label for="security_ask_old">原安全问题</label>
</dt>
<dd class="opt" style="width: auto;">
{$security.security_ask}
<span class="err"></span>
<p class="notic"></p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label for="security_answer_old"><em id="security_answer_old_em" style="display: none;">*</em>原问题答案</label>
</dt>
<dd class="opt" style="width: auto;">
<input type="text" name="security_answer_old" value="" id="security_answer_old" placeholder="" class="w200" autocomplete="off">
<span class="err"></span>
<p class="notic">不重新设置无需填写问题答案</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label for="security_ask">设置安全问题</label>
</dt>
<dd class="opt" style="width: auto;">
<select name="security_ask" id="security_ask" class="w210">
<option value="-1">请选择…</option>
{volist name='$security_askanswer_list' id='vo'}
<option value="{$key}">{$vo}</option>
{/volist}
</select>
<a href="javascript:void(0);" onclick="get_ask_list(this);" class="ncap-btn ncap-btn-green">问题列表</a>
<span class="err"></span>
<p class="notic"></p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label for="security_answer"><em id="security_answer_em" style="display: none;">*</em>设置问题答案</label>
</dt>
<dd class="opt" style="width: auto;">
<input type="text" name="security_answer" value="" id="security_answer" class="w200" autocomplete="off">
<span class="err"></span>
<p class="notic">为空默认不修改</p>
</dd>
</dl>
<script type="text/javascript">
$(function(){
// 新设置安全问题
$('select[name=security_ask]').click(function(){
var security_ask = $(this).val();
var security_answer = $.trim($('input[name=security_answer]').val());
if (0 > security_ask && security_answer === '') {
$('#security_answer_em').hide();
$('#security_answer_old_em').hide();
} else {
$('#security_answer_em').show();
$('#security_answer_old_em').show();
}
});
// 新设置问题答案
$('input[name=security_answer]').keyup(function(){
var security_ask = $('select[name=security_ask]').val();
var security_answer = $.trim($(this).val());
if (security_answer === '' && 0 > security_ask) {
$('#security_answer_em').hide();
$('#security_answer_old_em').hide();
} else {
$('#security_answer_em').show();
$('#security_answer_old_em').show();
}
});
});
</script>
{/empty}
<dl class="row">
<dt class="tit">
<label for="security_verifyfunc">二次验证范围</label>
</dt>
<dd class="opt">
<!-- <label title="强制勾选"><input type="checkbox" name="security_verifyfunc[]" value="Security@*" checked="checked" disabled="true">安全中心</label> -->
<label title="强制勾选"><input type="checkbox" name="security_verifyfunc[]" value="Filemanager@*" checked="checked" disabled="true">模板管理</label>
<label class="curpoin"><input type="checkbox" name="security_verifyfunc[]" value="Weapp@*" {if condition="!empty($security['security_verifyfunc']) && in_array('Weapp@*', $security['security_verifyfunc'])"}checked="checked"{/if}>插件应用</label>
<p class="notic">建议勾选,避免存在被注入木马的安全漏洞隐患</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label for="security_ask_ip_open">IP白名单</label>
</dt>
<dd class="opt">
<label class="curpoin"><input id="security_ask_ip_open1" name="security_ask_ip_open" value="1" type="radio" {if condition="!isset($security.security_ask_ip_open) || $security.security_ask_ip_open == 1"} checked="checked"{/if}>开启</label>
<label class="curpoin"><input id="security_ask_ip_open0" name="security_ask_ip_open" value="0" type="radio" {if condition="isset($security.security_ask_ip_open) && $security.security_ask_ip_open == 0"} checked="checked"{/if}>关闭</label>
<span class="err"></span>
<p class="notic">如果开启该功能,在相同IP下登录后,任意一个管理员二次验证成功,其他人不再弹出验证</p>
</dd>
</dl>
</div>
<script type="text/javascript">
function get_ask_list(obj)
{
layer.prompt({
title: '问题列表管理',
id: 'layerid_1645756024',
formType: 2,
btn: ['保存','取消'],
shade: layer_shade,
closeBtn: 0,
value: $('#security_askanswer_content').val(),
success: function(layero, index) {
if ('edit' == $('#is_ask_add_edit').val()) {
var security_ask_content = "{$security.security_ask}";
if (security_ask_content == '') {
security_ask_content = $('#security_ask_content').val();
}
var before_str = "<div style='margin: -8px 0px 10px 0px;'>当前问题名称:<font style='color: red;'>"+security_ask_content+"</font></div>";
$("#layerid_1645756024").prepend(before_str);
var after_str = "<div style='margin-top: 5px;font-size: 12px; color: #999999;'>保存后,已设置的问题名称会默认存入问题列表</div>";
$("#layerid_1645756024").append(after_str);
}
$("#layerid_1645756024").find('textarea').attr('placeholder', '一行代表一个问题');
},
btn2: function(index, layero){
layer.close(index);
return false;
}
}, function(value, index) {
save_ask_list(value);
});
}
function save_ask_list(value)
{
//loading层
var loading = layer.load(3, {
shade: [0.1,'#fff'] //0.1透明度的白色背景
});
$.ajax({
type : 'post',
url : "{:url('Security/save_ask_list', ['_ajax'=>1])}",
data : {value:value},
dataType : 'json',
success : function(res) {
if (res.code == 1) {
layer.closeAll();
var selected_text = $('select[name=security_ask] option:selected').text();
var option_html = '<option value="-1">请选择…</option>';
$.each(res.data.security_askanswer_list, function(index, item) {
if (selected_text == item) {
option_html += '<option value="'+index+'" selected="true">'+item+'</option>';
} else {
option_html += '<option value="'+index+'">'+item+'</option>';
}
});
$('select[name=security_ask]').html(option_html);
$('#security_askanswer_content').val(res.data.value);
layer.msg(res.msg, {shade: 0.1, time: 1000});
}else{
layer.close(loading);
$('#layerid_1645756024').find('input[type=textarea]').focus();
layer.msg(res.msg, {time: 1000});
}
},
error: function(e) {
layer.close(loading);
showErrorAlert(e.responseText);
}
});
}
function security_verify_open(obj)
{
var is_open = $(obj).val();
if (1 == is_open) {
$('#div_security_verify').show();
} else {
$('#div_security_verify').hide();
}
}
/**
* 是否已验证了答案
* @return {[type]} [description]
*/
function ajax_isverify_answer()
{
var flag = false;
var ask_open_old = {$security['security_ask_open']|default=0};
var ask_open = $('input[name=security_ask_open]:checked').val();
if (1 == ask_open_old && ask_open_old != ask_open) {
} else {
return true;
}
$.ajax({
url : "{:url('Security/ajax_isverify_answer')}",
type: 'POST',
async: false,
dataType: 'JSON',
data: {_ajax:1},
success: function(res){
if(res.code == 1){
flag = true;
}
},
error: function(e){
showErrorAlert(e.responseText);
}
});
return flag;
}
function autoload_security()
{
layer.prompt({
title: '二次安全验证',
id: 'layerid_1645598368',
btn: ['确定'],
shade: layer_shade,
closeBtn: 0,
success: function(layero, index) {
var before_str = "<div style='margin: -8px 0px 10px 0px;color: red;font-weight: bold;'>{$security.security_ask}</div>";
$("#layerid_1645598368").prepend(before_str);
$("#layerid_1645598368").find('input').attr('placeholder', '请录入问题的答案内容!');
$("#layerid_1645598368").find('input').bind('keydown', function(event) {
if (event.keyCode == 13) {
security_answer_verify($(this).val());
}
});
},
btn2: function(index, layero){
return false;
}
}, function(value, index) {
security_answer_verify(value);
});
}
function security_answer_verify(answer)
{
$.ajax({
type : 'post',
url : "{:url('Security/ajax_answer_verify', ['_ajax'=>1])}",
data : {answer:answer},
dataType : 'json',
success : function(res){
if (res.code == 1) {
layer.closeAll();
submitForm();
}else{
$('#layerid_1645598368').find('input[type=text]').focus();
layer.msg(res.msg, {time: 1000});
}
},
error: function(e) {
showErrorAlert(e.responseText);
}
});
}
</script>