($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('H:i');
$s = "";
return $s;
}
// form_date('start', '2018-07-05') 为空则当前日期
function form_date($name, $value = 0, $width = FALSE)
{
$style = '';
if (FALSE !== $width) {
is_numeric($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('Y-m-d');
$s = "";
return $s;
}
/**用法
*
* echo form_radio_yes_no('radio1', 0);
* echo form_checkbox('aaa', array('无', '有'), 0);
*
* echo form_radio_yes_no('aaa', 0);
* echo form_radio('aaa', array('无', '有'), 0);
* echo form_radio('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'b');
*
* echo form_select('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'a');
*/
?>组保留的标签 余下为需要删除的标签
unset($oldtag[$key]);
}
}
}
if (!empty($oldtag)) {
$tagids = array();
foreach ($oldtag as $tagid => $tagname) {
$tagids[] = $tagid;
}
well_oldtag_delete($tagids, $tid);
}
$r = well_tag_process($tid, $fid, $create_tag, $tagarr);
return $r;
}
// 删除标签和绑定的主题
function well_oldtag_delete($tagids, $tid)
{
$pagesize = count($tagids);
$arrlist = well_tag_find_by_tagids($tagids, 1, $pagesize);
$delete_tagids = array(); // 删除
$tagids = array();
$n = 0;
foreach ($arrlist as $val) {
++$n;
if (1 == $val['count']) {
// 只有一个主题
$delete_tagids[] = $val['tagid'];
} else {
$tagids[] = $val['tagid'];
}
}
!empty($delete_tagids) and well_tag_delete($delete_tagids);
$arlist = well_tag_thread_find_by_tid($tid, 1, $n);
if ($arlist) {
$ids = array();
foreach ($arlist as $val) $ids[] = $val['id'];
well_tag_thread_delete($ids);
}
!empty($tagids) and well_tag_update($tagids, array('count-' => 1));
}
// 标签数据处理 $arr=新提交的数组 $tagarr=保留的旧标签
function well_tag_process($tid, $fid, $new_tags = array(), $tagarr = array())
{
if (empty($tid)) return '';
// 新标签处理入库
if ($new_tags) {
$threadarr = array();
$tagids = array();
$i = 0;
$size = 5;
$n = count($tagarr);
$n = $n > $size ? $size : $size - $n;
foreach ($new_tags as $name) {
++$i;
$name = trim($name);
$name = stripslashes($name);
$name = strip_tags($name);
$name = str_replace(array(' ', '#', "@", "$", "%", "^", '&', '·', '<', '>', ';', '`', '~', '!', '¥', '……', ';', '?', '?', '-', '—', '_', '=', '+', '.', '{', '}', '|', ':', ':', '、', '/', '。', '[', ']', '【', '】', '‘', ' ', ' ', ' ', ' ', ' '), '', $name);
$name = htmlspecialchars($name, ENT_QUOTES);
if ($name && $i <= $n) {
// 查询标签
$read = well_tag_read_name($name);
if ($read) {
// 存在 count+1
$tagids[] = $read['tagid'];
} else {
// 入库
$arr = array('name' => $name, 'count' => 1);
$tagid = well_tag_create($arr);
FALSE === $tagid and message(-1, lang('create_failed'));
$read = array('tagid' => $tagid, 'name' => $name);
}
$tag_thread = array('tagid' => $read['tagid'], 'tid' => $tid);
$threadarr[] = $tag_thread;
$tagarr[$read['tagid']] = $read['name'];
}
}
!empty($threadarr) and tag_thread_big_insert($threadarr);
!empty($tagids) and well_tag_update($tagids, array('count+' => 1));
}
$json = empty($tagarr) ? '' : xn_json_encode($tagarr);
return $json;
}
?>return $r;
}
/**
* @param int $page 页数
* @param int $pagesize 每页显示数量
* @return mixed
*/
function link_find($page = 1, $pagesize = 100)
{
$arr = link__find($cond = array(), array('rank' => -1), $page, $pagesize);
return $arr;
}
/**
* @param $id
* @return bool 返回FALSE失败 TRUE成功
*/
function link_delete($id)
{
if (empty($id)) return FALSE;
$r = link__delete(array('id' => $id));
link_delete_cache();
return $r;
}
//--------------------------kv + cache--------------------------
/**
* @return mixed 返回全部友情链接
*/
function link_get($page = 1, $pagesize = 100)
{
$g_link = website_get('friends_link');
if (empty($g_link)) {
$g_link = link_find($page, $pagesize);
$g_link AND website_set('friends_link', $g_link);
}
return $g_link;
}
// delete kv and cache
function link_delete_cache()
{
website_set('friends_link', '');
return TRUE;
}
?> $v = implode(",", $v);
$temp[] = $v;
}
// 去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
// 再将拆开的数组重新组装
$output = array();
foreach ($temp as $k => $v) {
if ($stkeep) $k = $starr[$k];
if ($ndformat) {
$temparr = explode(",", $v);
foreach ($temparr as $ndkey => $ndval) $output[$k][$ndarr[$ndkey]] = $ndval;
} else $output[$k] = explode(",", $v);
}
return $output;
}
// 合并二维数组 如重复 值以第一个数组值为准
function array2_merge($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array1 as $k => $v) {
isset($v[$key]) ? $arr[$v[$key]] = array_merge($v, $array2[$k]) : $arr[] = array_merge($v, $array2[$k]);
}
return $arr;
}
/*
* 对二维数组排序 两个数组必须有一个相同的键值
* $array1 需要排序数组
* $array2 按照该数组key排序
* */
function array2_sort_key($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array2 as $k => $v) {
if (isset($v[$key]) && $v[$key] == $array1[$v[$key]][$key]) {
$arr[$v[$key]] = $array1[$v[$key]];
} else {
$arr[] = $v;
}
}
return $arr;
}
?>
WannaCry 崛起,是时候给程序猿 & 程序媛们上课了——数据备份、安全端口排查,紧急响应!-软件玩家 - 软件改变生活!
背景:
2017年5月12日20时开始,勒索病毒WannaCry肆虐全球,利用Windows操作系统漏洞( NSA 之前被泄露的名为 ETERNALBLUE (永恒之蓝)的黑客工具,其利用微软服务器消息区块(SMB)协议中的 MS17-010 漏洞在 PC 或服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。据悉微软已于2017年3 月14
日就已发布修复该漏洞的 安全补丁,但并非所有计算机都安装了该安全更新。),对校园电脑、个人电脑以及政府机关均造成了影响,尤其是校园网站。据媒体报道,包括俄罗斯联邦内务部,中国教育网相连的大陆高校和中国公务机关内网的 Windows 设备都受到了不同程度的感染。
WannaCry病毒与其他同类勒索病毒不同,它是一种可自动感染其他电脑进行传播的蠕虫病毒,因链式反应而迅猛爆发。这种勒索病毒主要感染Windows系统,它会利用
加
密
技术锁死文件,禁止用户访问,并以此勒索用户。袭击者声称,索要价值300美元以上的比特币后方能解锁文件。实际上,即使支付赎金,也未必能解锁文件。该勒索蠕虫
一
旦攻
击进入能连接公网的用户机器,则会扫描内网和公网的ip,若被扫描到的ip打开了445端口,则会使用“EnternalBlue”(蓝之永恒)漏洞安装后门。一旦执行后门,则会
释放一个名
为Wana Crypt0r敲诈者病毒,从而加密用户机器上所有的文档文件,进行勒索。
腾讯电脑管家发布了勒索病毒的历史介绍(可参考下面的链接):
案例一:木马伪装Chrome字体更新程序攻陷WordPress网站
(;
案例二:腾讯反病毒实验室:“敲诈者”黑产研究报告(;
案例三:新型敲诈者病毒“纵情”来袭 电脑管家率先拦杀(;
解决方案:(备注:其实网上可以搜到很多的教程,这里记录的仅仅是自己对这方面内容的积累,也是希望和大家共享一下,大神勿喷哦~)
第一步:关闭445端口(网上有图文教程,这里只是以文字的方式给出步骤,当然这里稍微强调一点大家都知道的,但是我不知道的注意事项~)
打开控制面板----->Windows防火墙(查看类别==类别?系统和安全:Windows防火墙)------>高级设置------>左侧入站规则-------->右侧新建规则----->端口
------>下一步------>选择TCP & 特定本地端口(后面的输入框填写445)--------->下一步-------->阻止连接-------下一步------下一步(这里设置的名字是为了让自己
明白是用来干什么的,不如就写个预防勒索病毒)------->完成。然后还有一个,跟上面这一套步骤基本上一样,只是在上一套步骤中选择TCP的那步选择UDP
就行了,其他的不变,再照着操作一遍就行了。好了,端口这就算是关闭了。
第二步:我弱弱的问一句,您的防火墙开启了没有?是只开了“家庭或工作(专用)网络”呢或者只开了“公用网络”呢,还是都开了呢,如果都开了,那就不用操作这一步了
打开控制面板----->Windows防火墙(查看类别==类别?系统和安全:Windows防火墙)
------>打开或关闭windows防火墙------>家庭或工作(专用)网络位置设置 和 公用网络位置设置最好都选择启动windows防火墙------->确认就行了,防火墙就开启了,但是这里需要提醒大家的是,如果防火墙是首次打开,得重启电脑才行,这样防火墙才起作用(亲测)。
第三步:安装补丁了
这个我已经将我用的补丁共享了,大家可以去下载:链接: 密码: yqia
结束语:
好了,就到这里了,希望能够帮到和我一样,对这个问题的解决还有疑惑的朋友们。后来觉着还是带一点儿图片吧,也算是对自己敲半天步骤的一个交代。
附图一:
附图二:
附图三:
附图四:(这个是补丁安装完成后的图片)
本文标签:
防火墙端口下一步
发表评论