如何使用https保护网站


87

我必须为公司构建一个小型Web应用程序以维护其业务数据...只有公司内部的人员才能使用它,但是我们计划将其托管在公共领域中,以便员工可以从各个位置连接到应用程序。(到目前为止,我已经构建了仅在内部托管的Web应用程序)

我想知道我是否需要使用安全连接(https)还是仅使用表单身份验证就足够了。

如果您说https,我有一些问题:

  1. 我应该怎么做才能为https准备我的网站。(是否需要更改代码/配置)
  2. SSL和https是否相同?
  3. 我需要向某人申请以获得一些许可证或其他东西吗?
  4. 我需要保护我的所有页面安全还是仅保护登录页面...

我正在互联网上寻找答案,但无法获得所有这些要点...任何白皮书或其他参考文献也将有所帮助...

如果您需要更多信息,请随时询问。

谢谢

  • 拉贾

大家好...谢谢大家...您所有的答案都非常有帮助...在这里选择一个答案是不公平的。因此,我选择了一个答案,对其他答案进行了投票...所选的答案与其他答案同等重要...
国王

3
根据信息的机密性(例如,个人信息可能受联邦法律管辖)以及您与公司之间的关系和合同,您还需要谨慎行事,以决定是否对您承担责任有人入侵了该网站。
huynhjl'2

将证书安装在服务器上之后,要将https添加到IIS中的网站,您要做的就是转到该站点,然后单击“编辑绑定”,选择https,然后选择证书。
bgmCoder

Answers:


49

我应该怎么做才能为https准备我的网站。(是否需要更改代码/配置)

您应该牢记关于安全编码的最佳实践(这里是一个很好的介绍:http : //www.owasp.org/index.php/Secure_Coding_Principles),否则,您所需要的只是正确设置的SSL证书。

SSL和https是否相同。

是的,是的。

我需要向某人申请以获得一些许可证或其他东西吗?

您可以从证书颁发机构购买SSL证书,也可以使用自签名证书。您可以购买的价格相差很大-每年从10美元到数百美元不等。例如,如果您建立了一家网上商店,您将需要其中之一。自签名证书是内部应用程序的可行选择。您也可以使用其中之一进行开发。这是有关如何为IIS设置自签名证书的很好的教程:使用自签名证书在IIS 7.0上启用SSL

我需要保护我的所有页面安全还是仅保护登录页面。

使用HTTPS进行所有操作,而不仅仅是初始用户登录。这不会有太多的开销,这意味着如果用户从您的远程托管应用程序发送/接收的数据被拦截,则无法被外部各方读取。默认情况下,甚至Gmail现在都默认启用HTTPS。


1
您还可以获得免费的TLS证书,即从Let's
crypto

8

什么样的业务数据?商业秘密或只是他们不希望别人看到的东西,但是如果泄露了,这没什么大不了的?如果我们在谈论商业秘密,财务信息,客户信息以及通常是机密的东西。那就别走那条路了。

我想知道我是否需要使用安全连接(https)还是仅使用表单身份验证就足够了。

始终使用安全连接。

我是否需要更改代码/配置

是。好吧可能不是。您可能需要专家为您执行此操作。

SSL和https是否相同?

通常是的。人们通常将这些事物称为同一事物。

我需要向某人申请以获得一些许可证或其他东西吗?

您可能希望由证书颁发机构签署证书。这将花费您或您的客户一些钱。

我需要保护我的所有页面安全还是仅保护登录页面...

始终使用https。如果该网站供内部用户使用,则性能通常不是问题。

我正在互联网上寻找答案,但无法获得所有这些要点...任何白皮书或其他参考文献也将有所帮助...

从这里开始获得一些指导:http ://www.owasp.org/index.php/Category: OWASP_Guide_Project

请注意,一旦可以从Internet进行访问,SSL是使您的网站安全的一项微不足道的工作。它不能阻止大多数黑客攻击。


+1以获得关于一路保护安全和防止灾难的合理建议,方法是询问信息是否非常机密,并建议不要将该信息置于网上
BlueTrin 2010年

7

我认为您对网站身份验证和SSL感到困惑。

如果需要使站点进入SSL,则需要在Web服务器中安装SSL证书。您可以从Symantec等场所之一购买自己的证书。该证书将包含您的公钥/私钥对以及其他内容。

您将不需要在源代码中做任何事情,并且您仍然可以继续在网站中使用表单验证(或其他任何形式)。就是这样,Web服务器与客户端之间发生的任何数据通信都将使用您的证书进行加密和签名。人们会使用安全HTTP(https://)访问您的网站。

查看此以获取更多信息-> http://en.wikipedia.org/wiki/Transport_Layer_Security


3

对于业务数据,如果数据是私有的,我将使用安全连接,否则表单身份验证就足够了。

如果您确实决定使用安全连接,请注意,我没有保护网站的经验,我只是在总结自己的个人经历。无论如何,如果我错了,请随时纠正我。

我应该怎么做才能为https准备我的网站。(是否需要更改代码/配置)

为了为您的网站启用SSL(安全套接字层),您需要设置证书,代码或配置不变。

通过使用本在线教程中的OpenSSLActivePerl,我为内部Web服务器启用了SSL 。如果将其用于较大的受众群体(我的受众群体少于10人)并且属于公共领域,则建议您寻求专业的替代方法。

SSL和https是否相同?

不完全是,但是它们并驾齐驱!SSL可确保在您浏览网站时来回加密和解密数据,https这是访问安全网站所需的URI。您将在尝试访问http://secure.mydomain.com它时看到一条错误消息。

我需要向某人申请以获得一些许可证或其他东西吗?

您无需获得许可证,而只需获得证书。您可以调查提供安全网站保护的专业公司,例如VeriSign

我需要保护我的所有页面安全还是仅保护登录页面...

启用证书后,mydomain.com所有属于该页面的页面都*.mydomain.com将得到保护。


1

4.我需要保护我的所有页面安全还是只保护登录页面...

只需将登录页面保留在https下

这样可以确保浏览其他页面时没有任何开销。条件是您需要在Web配置中提供正确的身份验证设置。这是为了确保未登录的用户将无法浏览需要身份验证的页面。


3
在TLS下仅为网站的一部分提供服务是不安全的。活跃的攻击者可以使用SSLStrip并有权访问据说受保护的页面。
东武

1

@balalakshmi提到了正确的身份验证设置。身份验证只是问题的一半,另一半是授权。

如果您使用的是表单身份验证和标准控件<asp:Login>,则需要做几件事以确保只有经过身份验证的用户才能访问受保护的页面。

在中web.config<system.web>部分下,您需要默认禁用匿名访问:

<authorization>
 <deny users="?" />
</authorization>

任何将匿名访问的页面(例如Login.aspx页面本身)都将需要具有重写,以重新允许匿名访问。这需要一个<location>元素,并且必须位于该<configuration>级别(本节外部<system.web>),例如:

<!-- Anonymous files -->
<location path="Login.aspx">
 <system.web>
  <authorization>
   <allow users="*" />
  </authorization>
 </system.web>
</location>

请注意,您还需要允许匿名访问匿名页面使用的任何样式表或脚本:

<!-- Anonymous folders -->
<location path="styles">
 <system.web>
  <authorization>
   <allow users="*" />
  </authorization>
 </system.web>
</location>

请注意,与大多数其他路径类型的配置属性不同,位置的path属性是相对于web.config文件夹的,并且不能有~/前缀。


-2

尝试在PHP中创建启动目录,如下所示:

<?PHP
$ip = $_SERVER['REMOTE_ADDR'];
$privacy = ['BOOTSTRAP_CONFIG'];
$shell   = ['BOOTSTRAP_OUTPUT'];
enter code here
if $ip == $privacy {
function $privacy int $ip = "https://";
} endif {
echo $shell
}
?>

多数民众赞成在主要!


3
这实际上并没有真正回答问题
Andreas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.