的 我们可以说网站可以完全免受黑客攻击吗? 强>
不会。即使是世界上最安全的技术也容易受到攻击 社会工程学 攻击,一方面。
总结并添加到之前的帖子:
我要说网站只是改变了客户端代码挑战的安全挑战的本质。开发人员不需要担心代码复制,但开发人员确实需要了解集中数据和访问服务器(或服务器集合)所带来的风险。这只是一个不同的问题。
不可能做出任何100%安全的事情。
所有可以做的就是做一些足够难以闯入的事情,这样做的时间和精力使得它不值得做。
事实上,黑客总是比开发人员领先一步,你永远不会认为一个网站是防弹和100%安全的。你尽可能地避免恶意的东西! 实际上,在安全性方面,您应该遵循白名单方法而不是黑名单方法。
是的,总是可以这样做。总有一种方式。
这就像我的祖父总是说:
锁是为了保持诚实 人们出去了
不要挑剔,但是你对“好主机”的定义并不认为在主机上运行的HTTP服务完全没有漏洞利用。
流行的Web服务器(如IIS和Apache)通常会进行修补,以防止此类攻击,这些漏洞通常与发现本地可执行文件中的漏洞相同。
例如,格式错误的HTTP请求可能导致服务器上的缓冲区溢出,从而导致其部分数据被执行。
假设服务器本身没有被压缩,并且没有其他客户端共享它,静态代码应该没问题。当涉及到某种脚本语言时,事情通常才开始变得时髦。毕竟,我从来没有见过一个被称为“它的作品!”页
我可以破解你的网站吗?当然,我只会雇用一些自杀炸弹手来炸毁你的服务器。或者......我会炸毁那些为你的网站供电的电厂,或者我做某种社会工程,DDOS攻击很可能在很大程度上有效,更不用说原子弹......
简短回答:是的。
网站受到很大的影响 注射 和 跨站脚本 攻击
跨站点脚本执行 网站大约占80% 记录在案的安全漏洞 2007年
还有一个网站的一部分(在一些网站上很多)以CSS,HTML和javascript的形式发送给客户端,任何人都可以查看。
这个问题的答案接近于考虑停止问题而产生的关于计算理论的想法。 http://en.wikipedia.org/wiki/Halting_problem 也就是说,如果您能够清楚地表明您已经设计了一种以编程方式确定任何特定程序是否安全的方法,那么您可能接近于反驳您正在使用的机器类别上的停止问题的不可判定性。由于停止问题的不可判断性已经得到证实,我们可以知道,由于安全问题减少到停止问题,因此在图灵机上你将无法证明其安全性。即使对于有限的机器,您也可以决定程序的所有状态,但明斯克会告诉我们,即使是简单的现代机器和Web服务器,完整状态树所需的时间也是巨大的。您可能对特定代码有很多了解,但只要您更改代码或更新代码,就需要进行完整的重新测试。从根本上说,这很有趣,因为它可以归结为信息和意义的概念。阅读自动化理论证明,以更多地了解计算系统的局限性。 http://en.wikipedia.org/wiki/Automated_theorem_proving
是的,它就是 可能 使网站完全安全,合理定义“完整”,包括您的托管不易受攻击的原始前提。问题与任何包含缺陷的软件相同;人们创造的复杂性软件略微超出了他们的管理能力,因此在为时已晚之前,这些漏洞仍然未被发现。
您可以从较小的开始,并在构建它时证明您的所有工作正确和安全,重新制作任何未设计到严格质量的现成组件,但不幸的是,与您相比,这使您处于巨大的商业劣势能够在1%的时间内编写99%安全软件的人。因此,沿着这条道路走下去很少是一个很好的商业理由。
我们可以说网站可以完全免受黑客攻击( 的 我们假设托管不容易受到攻击 强> )?
好吧,如果我们要开始对攻击者施加约束,那么我们当然可以设计一个完全安全的系统:我们只需要禁止所有攻击者的攻击。
如果我们假设攻击者实际上想要进入(并且不受您的约定规则约束),那么答案就是否定,您无法完全免受攻击。
您可以轻松编写一个在数学上被证明是安全的Web应用程序......但只要底层操作系统,解释器和编译器都是安全的,这个证明就会成立,这是 决不 案子。
缺点是你必须在易用性和安全性(大部分时间)之间取得平衡,并决定什么能为你的目的提供最佳水平。
一个很好的例子就是密码。简单的方法就是拥有一个,随处使用,并使其易于记忆。实现它的安全方法是在编码范围内随机生成可变长度的字符序列,只有用户自己知道。
当然,如果你走得太远,用户的数据很容易被发现。但是,如果你在安全方面走得太远,实际应用可能最终导致危及安全措施附加价值的情况(例如,人们无法记住他们的密码和相应用户名的整个钥匙串,因此写它们都在某个地方。如果列表被泄露,那么已经实施的安全措施是徒劳的。因此,大部分时间都会发生平衡并且地方要求你在密码中输入一个数字并告诉你不要做任何愚蠢的事情,比如告诉别人。
即使你删除了恶意人的可能性,也没有从等式中泄漏数据的关键,人类的愚蠢是无限的。没有100%的安全性。
要记住的关键是网站通常是庞大而复杂的系统的一部分,如果黑客通过Web应用程序本身或整个基础架构的其他部分进入系统并不重要。如果有人可以访问您的服务器,路由器,DNS或其他任何东西,他们甚至可以降低最好的Web应用程序。根据我的经验,很多系统都以某种方式易受攻击。因此,“完全安全”意味着“我们正在努力确保平台的安全”或“我们毫无线索,但我们希望一切都好”。我见过两者。
说“完全安全”是一件坏事,因为它会陈述两件事:
因此,不应试图实现“完全安全”;
这可能是讨论这个问题的错误网站。然而,众所周知,安全性和可用性是反向相关的。看到这个 岗位 例如,Bruce Schneier(指的是另一个网站,但在Schneier的博客上有很多关于这个问题的有趣读物)。