在创建启动时 - 要么是一个网站或丰富的Web应用程序 - 您必须遵守一些基本规则,以确保用户获得充分保护。为防止潜在攻击,您需要专注于已经在编程阶段的创建代码的质量。以下是几十个可能的攻击场景中的五个:

1. SQL注射

SQL注入是最着名的攻击类型,源于输入的验证。最常用于基于PHP和ASP利用网站的漏洞。该攻击包括将不需要的SQL查询插入应用程序的输入。如果成功,这允许攻击者添加或删除数据库内容并浏览网站用户的电子邮件,密码和个人信息。如果网站将查询传递给数据库或动态生成它们,则可能会出现SQL注入型磁化率。

例子:

让我们假设登录变量(登录和密码)通过POST方法直接传递给SQL查询。负责登录用户的代码摘录容易攻击攻击可能如下所示:

如果网站用户在用户字段中提交管理员,则执行的SQL查询将如下所示:

发生了什么?- 字符将被我们的DBMS解释为注释,导致未能完成SQL查询的其他部分的执行,这是密码控制。攻击者可能会利用这一点以获得对服务的管理员访问权限。

如何防止攻击:

针对这种类型的攻击,最有效的保护是使用以下函数过滤用户提供的数据:mysql_real_escape_string()、pg_escape_string()和其他函数。数字数据应该使用settype()或sprintf()进行转换,然后使用is_numeric()、ctype_digit()检查正确的数据格式。

2.帐户锁定

此攻击的最佳例证是最大的在线拍卖网站之一的用户的故事。用户出价是一个非常优质的商品。拍卖结束前15分钟,另一个用户进入了竞标。就在上市之前结束之前,当第一个用户试图提出他的最终报价时,他被从服务中退出并收到了一条消息,规定他的帐户已被锁定了30分钟,从而排除了他从进一步竞标。

为什么系统会以这种方式运作?

第二个投标人能够看到用户登录的第一个投标人,这是清楚地显示在网站上。他多次尝试登录另一个用户的帐户,并提供了错误的密码。试图防止暴力类型的攻击,系统锁定了用户的帐户后,失败的登录尝试达到了限制。使用帐户锁定类型攻击的攻击者可能能够拒绝用户访问他们的帐户。

如何防止攻击:

您可以考虑要求用户在每次登录尝试时输入验证码,而不是在达到失败登录尝试的限制后锁定用户的帐户。这将保护网站免受暴力类型的攻击,而不会拒绝用户访问他们的帐户。

另一个解决方案阻止单个IP地址从登录帐户到指定的时间段。仍然可能发生攻击者和攻击用户共享IP地址,这将导致普通用户也被拒绝服务。

3.存储XS.

在这种类型的攻击中,攻击者写的脚本是从先前注入的数据库中获取的。与SQL注入攻击相比,恶意代码不会影响数据库的运作,但是,在网站规则之后,将传递给网站的用户。可恶意代码可以在网站评论框中的条目中输入,并且可能被用户的浏览器作为本网站的一部分被错误地解释。永远不会发生这种情况:攻击者永远不应该能够在脚本中写作并将其传递给客户。这种类型的攻击可能会针对不怀疑它被感染恶意脚本的网站的所有用户来利用。

例子:

以下条目已提交给留言板或在评论中:

如何防止攻击:

防止存储的XSS需要正确过滤输入。最好的方法是创建允许包含在字段中的字符白名单。如果我们的网站似乎容易存储XSS攻击,则将HttpOnly选项添加到外传Cookie可能很有用。在大多数浏览器中,这将通过客户端的脚本语言(JavaScript)阻止cookie盗窃,因此有助于防止会话劫持。然而,设置HttpOnly标志无法被视为安全对策:它只将保护您免受最简单的攻击。

4. Unicode编码

ASCIbetwayapp下载安装I字符编码方案的发展是基于在英语中发现的字母,这被认为是通用的。然而,随着时间的推移,万维网开始在拥有不同语言和字母系统的国家使用。由于一个字节不能容纳所有语言中的所有字符,因此引入了一种新的编码系统,这种编码系统可以适应不同的语言群体。统一码标准就是为解决这种情况而制定的。在这个系统中,每个字母可以被一个以上的字节保存。正因为如此,一个单一的编码系统可以覆盖世界上所有的语言。

UTF-8编码的使用,现在广泛用作最流行的基于Unicode的系统,允许潜在的入侵者以多种方式插入过滤的序列(例如,'../')。没有检查其有效性的UTF-8解码器可以接受应拒绝作为一个字符(例如'/')拒绝的特制序列。

例子:

说到字符编码,现在让我们看看用不同编码系统编写的相同链接。

在不同的编码系统中,字符将占据不同的位置。因此,通过黑名单过滤输入以排除禁止的字符将需要允许所有可能的编码集。

防止这种攻击的最佳方法是将所有提供的数据转换为相同的编码格式。只有这样,我们才能审查它的有效性,并排除不需要的字符。

5. PHP注射

编程语言具有启用外部代码的功能。在PHP中,这些是:Require(),包括(),eval()和preg_replace与修改器/ e将占位符串字符串视为php代码。如果将用户提供的数据传递给这样的功能之一,则可能发生PHP代码注入。

例子:

让我们假设该网站有一个非常简单的控制器,它依赖于通过Get方法发送的变量文件来提交指定文件的内容。

正如我们所看到的,Get方法传递的变量文件进一步传递给函数()。这是一个严重的错误,可能以多种方式被攻击者利用。

现在可以执行任何代码,例如:

恶意代码的路径作为包含的函数的参数传递。该脚本将被攻击服务器执行。

如何防止攻击:

服务器配置可能有所帮助。Option allow_url_fopen可以阻止从外部服务器访问文件file_get_contents,fopen,包括和要求。防止此类攻击的最佳方法是不通过用户提供的输入数据来执行脚本的功能。作为函数的参数包括,需要等,过滤输入字符串并创建可以包括或执行的文件的白名单是必不可少的。

测试您的安全性

手动检查网站以了解已知的安全漏洞是良好的做法。为了加快这一耗时的过程,您可以使用旨在自动搜索的许多工具。接下来我们讨论三种测试方法。

黑匣子测试

黑匣子测试人员只拥有有关网站功能的信息,并不知道应用程序的内部结构。他们只知道应该输入哪个输入,并检查返回的输出是否正确。

麋鹿是黑盒测试软件的一个例子。

白色盒子测试

白盒测试基于相反的原则。测试人员可以完全访问源代码,并且通过阅读代码来检测安全漏洞和漏洞。老鼠是自动化的白色盒式测试软件的一个例子。

灰色盒子测试

这是前面讨论的两种方法的结合。这种技术要求我们能够访问在应用程序开发期间创建的完整文档,但是不能访问源代码。betwayapp下载安装通过这种方法,我们可以在黑箱测试中调整测试变量的特异性水平。

全面的

五种选定类型的攻击尚未深入涵盖,只有很少的基本情景已经讨论:肯定有许多可能的组合攻击威胁您的业务。任何程序员,项目经理或启动创建者必须识别保护其应用程序的重要性。甚至可能诋毁简单安全措施的不足以诋毁最有价值的网络服务,并吓倒客户。

对安全感兴趣?

在UDEMY学习平台上提供有关我们的黑客学校课程中的IT安全性:

网站在练习中黑客攻击

黑客学校培训

使用优惠券代码:ublog并节省40%!

图像08.关于作者:

黑客学校在全球范围内培训了超过25000人。每门课程都是由专业人士准备的。作者在计算机系统安全领域是众所周知的。

每天我们都处理计算机安全,网络基础架构和应用程序的分析。我们在计算机智能和计算机取证领域拥有丰富的经验。我们使用定制和非常规方法测试安全性,保证最优质的服务。

我们很高兴地与西欧,北美和俄罗斯的主要公司合作。我们向客户提供委托信息的匿名,隐私和安全性。与一群可靠的专家一起,我们将解决与计算机系统安全相关的每个问题,现在我们希望与您分享我们的知识。

顶级创业课程

在开始业务之前,您必须知道15件事
格雷格多弗里德
4.8 (156)
如何开始成功的服务业务
格雷格多弗里德
4.6 (82)
如何发现、评估和启动新的创业创意
Pavel N. |商业|创新|视频,Olena T.
4.4 (1,793)
天然产品创业:草药、护肤、Spa+
伊丽莎白哎呀
4.8 (329)
畅销书
咨询初创公司如何快速启动咨询业务
无所畏惧的企业家学院,路易斯安妮·莫里斯
4.4 (396)
数字营销机构|社交媒体营销业务
罗宾&jesper
4.5 (1607)
畅销书
新的虚拟助理业务 - 推出蓝图
艾琳展位
4.7 (171)

更多的创业课程

启动学生也会学习

赋予你的团队。引领行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示