如何使用https保护网站

我必须build立一个小公司的webapp来维护他们的业务数据…只有公司内部的人才会使用它,但是我们打算把它放在公有领域,这样员工就可以从不同的位置连接到应用程序。 (直到现在我已经构build了仅在内部托pipe的Web应用程序)

我想知道是否需要使用安全的连接(https)或只是表单身份validation就足够了。

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

  1. 我应该怎么做,以准备我的网站的https。 (我是否需要更改代码/configuration)
  2. SSL和HTTPS是一样的…
  3. 我需要申请与某人获得一些许可证或什么东西。
  4. 我是否需要使所有页面安全或只有login页面…

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

随时问问你需要更多的信息。

谢谢

  • 拉贾

我应该怎么做,以准备我的网站的https。 (我是否需要更改代码/configuration)

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

SSL和https是一样的

很多,是的。

我需要申请与某人获得一些许可证或什么东西。

您可以从证书颁发机构购买SSL证书或使用自签名证书。 你可以购买的价格差异很大 – 每年从10美元到数百美元不等。 例如,如果您设置在线商店,则需要其中的一个。 自签名证书是内部申请的可行select。 你也可以使用其中的一个进行开发。 以下是有关如何为IIS设置自签名证书的很好的教程: 在IIS 7.0上启用SSL使用自签名证书

我是否需要使所有的页面安全或只有login页面..

使用HTTPS的一切,不只是初始用户login。 这不会造成太大的开销,这意味着用户从远程托pipe的应用程序发送/接收的数据如果被拦截,则不能被外部读取。 即使Gmail现在默认打开HTTPS。

什么样的业务数据 ? 商业秘密还是只是他们不希望人们看到的东西,但是如果它出来,这不是什么大不了的事情? 如果我们正在谈论商业秘密,财务信息,客户信息和通常是保密的东西。 那么,甚至不要走这条路。

我想知道是否需要使用安全的连接(https)或只是表单身份validation就足够了。

一路使用安全连接。

我需要改变代码/configuration吗?

是。 那么可能不是。 你可能想有一个专家为你做这个。

SSL和HTTPS是一样的…

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

我需要申请与某人获得一些许可证或什么东西。

您可能想让证书颁发机构签署您的证书。 这将花费你或你的客户一点钱。

我是否需要使所有页面安全或只有login页面…

整个使用https。 如果网站是面向内部用户的,性能通常不是问题。

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

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

请注意,SSL是一个很小的部分,使您的网站可以从互联网上获得安全。 它并不能防止大部分的黑客行为。

我想你对你的网站身份validation和SSL感到困惑。

如果您需要将您的网站转换为SSL,那么您需要将SSL证书安装到您的Web服务器中。 您可以从Symantec(赛门铁克)等其中一个地方为自己购买证书。证书将包含您的公钥/私钥对以及其他内容。

您不需要在源代码中执行任何操作,而且您仍然可以继续在您的站点中使用表单身份validation(或任何其他)。 只是,Web服务器和客户端之间发生的任何数据通信都将使用您的证书进行encryption和签名。 人们会使用secure-HTTP(https://)访问您的网站。

查看更多信息 – > http://en.wikipedia.org/wiki/Transport_Layer_Security

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

如果您决定使用安全连接,请注意,我没有保护网站的经验,我只是在收回我个人的经历期间遇到的情况。 如果我错了,请随时纠正我。

我应该怎么做,以准备我的网站的https。 (我是否需要更改代码/configuration)

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

我已经在这个在线教程中使用OpenSSLActivePerl ,为内部Web服务器启用了SSL。 如果这是用于更多的观众(我的观众less于10人),并在公共领域,我build议寻求专业的select。

SSL和HTTPS是一样的…

不完全是,但他们齐头并进! SSL确保数据在查看网站时被encryption和解密, https是需要访问安全网站的URI。 你会注意到,当你尝试访问http://secure.mydomain.com它会显示一条错误消息。

我需要申请与某人获得一些许可证或什么东西。

你不需要获得一个许可证,而是一个证书。 您可以查看提供安全网站专业服务的公司,例如VeriSign

我是否需要使所有页面安全或只有login页面…

一旦你的证书启用了mydomain.com每一个属于*.mydomain.com页面都将被保护。

4.我需要保证所有网页的安全或只有login页面…

只要保持在https下的login页面

这将确保在浏览其他页面时没有开销。 条件是你需要在Webconfiguration中提供正确的authentication设置。 这是为了确保没有login的用户将无法浏览需要authentication的页面。

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

如果您正在使用表单身份validation和标准控件(如<asp:Login> ,则需要执行几项操作才能确保只有经过身份validation的用户才能访问受保护的页面。

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文件夹,不能有~/前缀,不像大多数其他pathtypes的configuration属性。

尝试在PHP中创build一个启动目录,如

 <?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 } ?> 

那主要是它!