博客 (870)

苹果宣布 2017 年 1 月 1 日开始所有上架的应用必须启用 ATS 安全传输功能。ATS 要求服务器必须支持传输层安全(TLS)协议 1.2 以上版本;证书必须使用 SHA256 或更高的哈希算法签名;必须使用 2048 位以上 RSA 密钥或 256 位以上 ECC 算法等等,不满足条件的证书,ATS 都会拒绝连接。查看具体要求

微信小程序进入开发公测阶段,同样要求提供 HTTPS 方式安全连接。

证书类型对比

 DV SSL
域名验证型
OV SSL
组织验证型
EV SSL
扩展验证型
申请条件申请对象个人 / 企业企业企业
证明域名所有权
价格免费 / 低
提交审核提交资料邮箱、姓名、手机等DV 所需资料以及:
组织机构资料(企业执照)等
OV 所需资料以及:
法律相关文件
审核时间自动审核
1小时内
人工审核
3~5工作日
人工审核
3~5工作日
可信标识地址栏挂锁
地址栏公司名称××
绿色地址栏(IE)××
保护范围单域名
多域名
通配符/泛域名×
推荐用途个人及小型网站一般组织或中小型企业金融、电商、大型企业或受信组织

* 表格中,单域名指单个子域名(如:123.abc.com),多域名指多个子域名(可以不属于同一个顶级域名,如:123.abc.com / 456.abc.com / 456.def.com),通配符指单个顶级域名的所有子域名(如:*.abc.com)。
* 若 https 的网页中包含 http 资源,则地址栏的锁可能会消失。
* 浏览器上点击地址栏的锁可以查看具体的证书详情。

证书颁发机构(CA)

机构简介谁在用
Let's Encrypt公益组织,免费,每 90 天续约越来越多的中小网站
Symantec赛门铁克百度、支付宝、阿里云、Apple(EV)、微软
GlobalSign公众信任服务行业的领头羊淘宝、天猫(OV)、阿里云、京东(OV)
GeoTrust全球第二大?微信
Comodo价格实惠 
GoDaddy全球互联网域名注册商 
DigiCert不颁发 DV,在非 DV 市场份额中是老大Facebook、Twitter(EV)、Mozilla(EV)、GitHub(EV)
沃通 WoSign国产360搜索(EV)
Other  

* 赛门铁克收购了 VeriSign,VeriSign 又收购了 GeoTrust,所以 Symantec 和 GeoTrust 在 SSL 认证服务上就不知道是什么关系了,请自行百度。

* 代理商也可以购买,或许价格优惠,或许申请方便,如:阿里云、腾讯云等,甚至上淘宝购买。

* 查看:Netcraft 统计的市场份额

* 网上说使用 Let's Encrypt 的 SSL 在遇到国内第三方 DNS 解析服务时会超时,我认为只是在申请证书时偶尔超时(DNS query timed out),重试即可,证书部署后访问网站时应该没有问题,请知情者告知实情。

* 各版本 Windows 对 SSL/TLS 协议的支持

下一步

购买和部署阿里云的免费型 DV SSL 证书服务

在 IIS 中部署 SSL

在 nginx 中部署 SSL

xoyozo 10 年前
6,377

上一篇介绍了如何创建用于 https 的 SSL 证书,本文讲述如何将创建好的 SSL 证书导入到 Windows,并在 IIS 中部署 HPPTS 的访问。

 

导入证书

GetSSL 整理的安装方法合集:https://www.getssl.cn/support/ssl安装教程/

下面介绍另一种方法:

准备好 pfx 格式的证书和密码。

开始 -> 运行 -> MMC

点击菜单栏的“添加/删除管理单元”,选择证书,添加,“本地计算机”或“计算机帐户”

左侧展开证书个人,右键,所有任务,导入,键入密码,选择“根据证书类型,自动选择证书存储

 

绑定网站域名

打开 IIS 管理器,选择相应的网站,“绑定”,添加,类型为“https”,选择证书

这样网站就能以 https:// 方式访问了

 

实现 http 自动跳转 https

方案一:推荐

打开 ASP.NET 网站,如果没有 Global.asax 则添加全局应用程序类

在 Application_BeginRequest() 方法中添加以下代码:

if (!Request.IsLocal && !Request.IsSecureConnection)
{
    if (Request.HttpMethod == System.Net.WebRequestMethods.Http.Get || Request.HttpMethod == System.Net.WebRequestMethods.Http.Head)
    {
        Uri uri = Request.Url;
        Response.Redirect("https://" + uri.Authority + uri.PathAndQuery + uri.Fragment);
        HttpContext.Current.ApplicationInstance.CompleteRequest();
    }
}

Response.RedirectPermanent 是 301 永久

Response.Redirect 是 302 临时

Webform 貌似没有 303、307 的 Redirect,可以判断 Method 来分别处理。

MVC 中可以直接指定状态码,例:

public ActionResult About()    
{    
    HttpContext.Response.AddHeader("Location", "/Home/Contact");
    return new HttpStatusCodeResult(307);
}


方案二:

需要“URL 重写”支持,以 IIS 7 为例,模块下载地址:x86 / x64,IIS 8 及以上版本自带该模块

打开“URL 重写”,添加规则,选择空白规则

填写名称,如“Redirect to HTTPS

与模式匹配正则表达式

模式:(.*)

添加两个条件:

条件输入“{HTTPS}”,“与模式匹配”,模式“^OFF$”,确定

条件输入“{HTTPS_HOST}”,“与模式匹配”,模式“^(localhost)”,确定

操作类型“重定向”,

重定向 URL“https://{HTTP_HOST}/{R:1}

重定向类型:请参考此文,所有请求跳转可选 303,仅 GET/HEAD 请求跳转可选 307(推荐,可防止 POST 请求跳转丢失数据)

这么多步骤,其实最终会在网站 web.config 的 <system.webServer /> 节点下插入以下配置:

<rewrite>
  <rules>
    <rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
      <match url="(.*)"/>
      <conditions>
        <add input="{HTTPS}" pattern="^OFF$"/>
        <add input="{HTTPS_HOST}" pattern="^(localhost)" negate="true"/>
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Temporary"/>
    </rule>
  </rules>
</rewrite>

 

配置 Web.Release.config 转换语法


作为 ASP.NET 开发者,我们发现,当我们把这段 URL 重写规则复制到项目中的 web.config 后,在 VS 的本地调试中同样会自动跳转到 https://localhost/xxx,这可没法调试了呀。所以只能用 Web.Release.config 来实现本地调试用 http,发布用 https。

<system.webServer /> 节点是针对 IIS 7 的配置,干脆我把整个 <system.webServer /> 从 web.config 剪切到 web.release.config 中,然后给 <system.webServer> 加上属性和值:xdt:Transform="Insert",这样就能实现我们的目的了

详细的用于 Web 应用程序项目部署的 Web.config 转换语法参见此文

验证

最后我们来检查一下配置的对不对:https://www.geocerts.com/ssl_checker

参考资料

IIS 7 如何实现 http 重定向 https

 

扩展阅读

在 nginx 中部署 SSL

安装 SSL 证书遇到的一些问题


xoyozo 10 年前
7,754

最近做到微信语音时用到,将微信的媒体文件(.amr)下载到自己服务器上,并转码为 .mp3 格式。

下载 FFmpeg for Windows,放在网站目录下,譬如:网站目录/bin/ffmpeg/ffmpeg.exe

转换代码

string amr = HttpRuntime.AppDomainAppPath + media.sLocalPath.Substring(1).Replace("/", @"\");
string mp3 = amr + ".mp3";
string ffmpeg = HttpRuntime.AppDomainAppPath + @"bin\ffmpeg\ffmpeg.exe";

Process p = new Process();
p.StartInfo.FileName = ffmpeg;
p.StartInfo.Arguments = $@"-y -i {amr} -ar {16000} {mp3}";
p.Start();
p.WaitForExit();
p.Close();

-y 若有提示用户选择,默认“是”

-ar 采样数,微信的 amr 是 8000 Hz,如果不加这个参数转换后的 mp3 的也是 8000 Hz,但是音质下降严重,所以设成 16000 Hz 才勉强保持了音质。

WaitForExit() 是等待转码完毕才继续往下执行。

xoyozo 10 年前
7,888

异常加载 ssp.ggfeng.com,使页面样式冲突,堪比后门 —— 2016-11-18

xoyozo 10 年前
3,931

最近做到微信语音时用到,将微信的媒体文件(.amr)下载到自己服务器上,并转码为 .mp3 格式。

引用“NAudio.dll”或直接搜索 NuGet 包,将音频文件转码为 .mp3 只需要:

var data = new MediaFoundationReader("..\\amr\\test.amr");
MediaFoundationEncoder.EncodeToMP3(data, "..\\test.mp3", 码率默认192000);

若出现异常:

无法加载 DLL“mfplat.dll”: 找不到指定的模块。

原因是没有安装音频解码组件,以 Windows Server 2012 R2 为例:

打开“服务器管理器”,添加角色和功能,勾选“桌面体验”(可能在“用户界面和基础结构”,默认还会勾上“墨迹和手写服务”)

安装完成需要重启计算机。

若出现异常:

不支持给定的 URL 的字节流类型。 (异常来自 HRESULT:0xC00D36C4)

原因可能是没有能够播放 .amr 的解码器,或音频驱动!

如果还是搞不定,本站搜索 ffmpeg 吧!

xoyozo 10 年前
13,638

IIS 中如果直接“停止”网站,那么打开页面时会显示不友好的“该页无法显示”等界面,如果特殊原因要求不能打开所有页面,但必须有一个友好提示“网站维护中”的页面,那么最土的办法是把网站的所有文件移出来,仅上传一个提示正在维护的网页,并保证是默认首页。其实有一个更加简单有效的解决方案:

在 IIS 中单击该网站,打开“URL 重写”,右侧“添加规则”,选择“空白规则”。名称可以是“网站维护中”,请求的 URL 选择“与模式不匹配”,使用“完全匹配”,模式填入我们的提示页面地址,如“maintaining.html”,操作类型“重定向”,重定向 URL 填入刚才那个页面地址,附加查询字符串不需要,类型选择“临时(307)”,点击右侧“应用”。

好了,该网站的任何请求都会引导到 maintaining.html,而不仅仅是首页的跳转。而且不需要移动网站文件,也保障了不会被人利用网站漏洞攻击篡改网站内容。

补充一点,如果你的 maintaining.html 中调用了网站中的图片、脚本、样式表等,那么需要把模式匹配的方式改为“正则表达式”,并填入正确的正则表达式,以保证这些文件都能被正常请求。

xoyozo 10 年前
6,179
项目尺寸(宽*高)
手机网页/应用iPhone 屏幕分辨率
X展架、易拉宝60cm x 160cm、80cm x 180cm 等
名片90mm x 55mm、85mm x 54mm
A4纸210mm x 297mm
三折页(A4)210mm x 285mm
LED显示屏单元板分辨率32 x 16(点距1cm的话就是32cm x 16cm)、64 x 32 等

 

xoyozo 10 年前
5,265

一般地,我们容易想到:

DELETE FROM [表名]

但是,有一个更快更高效的命令:

TRUNCATE TABLE [表名]

如果需要按条件删除那就只能用 DELETE 了

xoyozo 10 年前
4,673

打开 SSMS

选择数据库,右键,属性

选择“权限”,点击“查看服务器权限”

选择“数据库设置”,修改“备份”框路径

注意:更改一个数据库的备份路径后,对所有数据库都是有效的

现在如果备份数据库到新的目录,会报以下错误:

无法打开备份设备。出现操作系统错误 5(拒绝访问。)。BACKUP DATEBASE 正在异常终止。。

那就在新的备份目录上右键属性,安全,编辑,添加,在框内填写“NT SERVICE\MSSQLSERVER”这个服务用户,确定,(这个用户名称会自动变成“MSSQLSERVER”,如果没有这个用户,点击“高级”-“立即查找”,选择 MSSQLSERVER 或 NT SERVICE\MSSQL$InstanceName),然后选择“完全控制”,一路确定

现在可以备份到新的目录中去啦

xoyozo 10 年前
7,465

知其然,才能使其安——王震

 

常见的攻击手法

SQL 注入

文件上传

弱口令

Nday 攻击

XSS

社会工程学

等等……

 

被黑原因总结

不知道 不及时 不在意
不知道自用系统安全动态 不及时更新系统安全补丁 不在意个人信息安全
不知道常见黑客攻击手段 不及时修复漏洞 不在意用户数据安全
不知道该如何修复 不及时排查被黑系统 不在意各种安全软件提示、提醒
不知道今后该如何防御   不在意细节

 

那些年,醉人的“三字经”

网站渗透娱乐版 针对企业的实战版

进谷歌 找注入

没注入 就旁注

没旁注 用0day

没0day 猜目录

没目录 就嗅探

爆账户 找后台

传小马 放大马

拿权限 挂页面

放暗链 清数据

搞企业 先扫描

默认密 都知道

社工库 找一找

邮箱号 先列好

九头蛇 跑一跑

搞不定 放大招

发邮件 凭伪造

没邮箱 搞网站

二级域 皆可爆

老漏洞 没修好

新漏洞 刷一票

干研发 Git 找

原代码 全都要

CDN 可以跳

防火墙 可以撬

堡垒机 可以绕

云防护 可以秒

是企业 没有哪家搞不了

 

攻击手法统计

Nday攻击:45%

漏洞攻击:35%

其他攻击:15%

0day攻击:5%

 

一些箴言

80%的安全问题都是已知的安全问题,但是能抵御已知安全问题的网站只有20%

弱口令虽然看起来很弱,但是忽视弱口令只会让你的网站变得更弱

没有百分之百的安全,你所做的一切不是为了让自己无坚不摧,只是让自己不再弱不禁风

80%的系统安全问题都是可以通过升级补丁来解决,但是能做到这点的人只有20%

SQL注入存在十几年了,依然是主流攻击手段,可见安全比的不是谁更先进,而是谁更细心

不要得罪你的开发人员,这就跟你吃饭不要得罪服务员一样,你不知道他下一秒会不会在你的菜里吐口水

 

还有一句

永远不要觉得你安装的安全防护软件真的可以保护你的安全

 

服务器安全注意事项

不安装不必要的软件

排查所有系统弱口令

关闭不常用的端口

控制目录权限

不在服务器上下载、打开非官方提供软件

不在服务器上打开他人发来的网页链接

 

如何排查暗链?

利用查看网站的源代码来检查黑链

使用站长工具“网站死链检测”功能来检查黑链

用 FTP 查看网站文件的修改时间来检查黑链

接入 webscan.360.cn 检测

 

后门排查

Windows 下,D 盾、安全狗、主机卫士

Linux 下,Seay 一句话扫描脚本、主机卫士 Linux 版

用 FTP 查看网站文件的修改时间来排查恶意后门

接入 webscan.360.cn 等在线检测

 

安全类书籍推荐

《Web 安全深度剖析》——张炳帅 著

《白帽子讲 Web 安全》——吴瀚清 著

《Web 前端黑客技术揭秘》——钟晨呜(余弦)著

《黑客攻防技术宝典 Web 实战篇》——国外某黑客 著

 

联系方式

官网:www.flsec.com

xoyozo 10 年前
5,453