如何使用https保护网站
我必须build立一个小公司的webapp来维护他们的业务数据…只有公司内部的人才会使用它,但是我们打算把它放在公有领域,这样员工就可以从不同的位置连接到应用程序。 (直到现在我已经构build了仅在内部托pipe的Web应用程序)
我想知道是否需要使用安全的连接(https)或只是表单身份validation就足够了。
如果你说https,我有一些问题:
- 我应该怎么做,以准备我的网站的https。 (我是否需要更改代码/configuration)
- SSL和HTTPS是一样的…
- 我需要申请与某人获得一些许可证或什么东西。
- 我是否需要使所有页面安全或只有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不被更改。
我已经在这个在线教程中使用OpenSSL和ActivePerl ,为内部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 } ?>
那主要是它!