没有合适的资源?快使用搜索试试~ 我知道了~
埃及信息学杂志23(2022)145使用加密查询和安全匹配可证明地限制SQLIMohammed Abdulridha Hussaina,b,Zaid Alaa Hussienc,Zaid Ameen Abduljabbara,b,d,Junchao Mae,Zhao,Mustafa A.Al Sibaheee,f,Sarah Abdulridha Hussaing,Vincent Omollo Nyangaresih,Xianlong Jiaoia伊拉克巴士拉大学纯科学教育学院计算机科学系,巴士拉61004bAl-Kunooze大学学院计算机技术工程系,伊拉克c南方技术大学管理技术学院信息技术系,伊拉克d华中科技大学深圳研究所,深圳430074e深圳科技大学大数据与互联网学院,深圳518118f伊拉克大学学院计算机技术工程系,伊拉克国家管理发展和信息技术中心,伊拉克h肯尼亚Homabay 40300 Tom Mboya大学生物物理科学学院i重庆大学计算机学院,重庆400044阿提奇莱因福奥文章历史记录:2022年3月7日收到2022年9月12日修订2022年10月13日接受2022年11月16日网上发售保留字:SQL注入密码学可搜索加密Web应用程序网络安全A B S T R A C TWeb应用程序在互联网上占据主导地位,充当客户和服务提供商之间的通信媒介。Web应用程序是互联网的一项创新,提供电子银行、电子商务和电子预订等客户服务。由于安全威胁和涉及有价值信息的服务问题,开发Web应用程序变得越来越复杂。诸如结构化查询语言(SQL)注入的攻击方法在用户输入数据请求中插入恶意代码以获得未经授权的访问,然后攻击者将目标对准数据库以操纵信息。本文提出了一种通过加密技术和可搜索加密技术来防范SQL注入攻击的方法。所提出的方法使用密码技术来加密所有数据库信息,其中每一条用户信息都使用单独的密钥进行加密。其余的数据库信息是用密钥加密的,其他数据库操作使用可搜索的加密技术来保护隐私。登录过程比较来自数据库的密码用户名和用户输入以验证用户。所提出的方法是在PHP和MySQL数据库上实现的,这是开源应用程序。结果表明,该方法有效地防止了SQL注入攻击,数据库仍然能够抵御SQL注入攻击©2022 The Bottoms.由Elsevier BV代表计算机和人工智能学院发布开罗大学法律系这是一篇CC BY-NC-ND许可证下的开放获取文章(http://creative-commons.org/licenses/by-nc-nd/4.0/)上提供。1. 介绍业界正朝着Web应用程序的方向发展,以支持具有普遍性和成本效益的远程服务[1]。组织和公司依靠Web应用程序向客户提供服务*通讯作者。电子邮件 地址: majunchao@sztu.edu.cnwww.example.com Ma)。开罗大学计算机和信息系负责同行审查。制作和主办:Elsevier同时将成本降低到最低,因为基础结构是基于互联网的。电子银行、购物、电子政务和预订等服务由于速度和实用灵活性而提高了日常生活的生产力[2]。Web应用程序构建在分层架构中的许多程序层上,以处理复杂性和特定功能。基本的互联网技术体系结构是客户端-服务器,而web应用程序增加了第三层(即,数据库层)来管理信息[3]。数据库包含用于管理Web应用程序和验证用户的记录。 然而,任何违反网络应用程序授权的行为都会导致所有数据库记录和信息的泄露[4]。对数据库的访问由访问控制策略控制,但其他数据操作不受控制或限制。换句话说,访问策略定义了如何访问数据,而不是如何使用数据[5]。https://doi.org/10.1016/j.eij.2022.10.0011110-8665/©2022 THE COURORS.由Elsevier BV代表开罗大学计算机和人工智能学院出版。这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表埃及信息学杂志杂志主页:www.sciencedirect.comM. Abdulridha Hussain,Z. Alaa Hussien,Z. Ameen Abduljabbar等人埃及信息学杂志23(2022)145146互联网的快速发展已经成为企业的首要关注点,而网上信息量的不断增长也导致了人们对信息安全和威胁的日益关注。此外,企业依赖互联网进行有价值的交易,如银行业务,这导致攻击者试图访问Web应用程序数据库[6]。一种Web应用程序攻击被称为结构化查询语言(SQL)注入攻击(SQLI),它针对数据库进行未经授权的访问。SQLI攻击被归类为严重和有害的Web应用程序,因为SQLI可以获得未经授权的访问,操纵数据库信息,并可能导致拒绝服务[7]。根据开放Web应用程序安全项目(OWASP)[8],SQL注入,其定义为将不受信任的数据注入正常命令或查询以获得对数据库的访问,是Web应用程序数据库的主要威胁[9]。攻击者在针对后端Web应用程序数据库的SQL查询中注入恶意代码[10]。攻击者会对数据库造成安全漏洞,其中影响的严重程度取决于SQL注入的类型和Web应用程序问题[11]。攻击者SQLI方法使用正常的SQL语句和规则,这是服务器-数据库通信需要验证或通信模式需要隐藏的原因攻击者的代码是一种普通的文本格式,Web服务器将其解释为SQL命令,并在数据库中执行。因此,注入的代码不包含任何使检测进一步复杂化的特殊字符[14]。预防是在复杂的分析过程中添加到Web服务器的。这会导致延迟,并且需要对每个用户输入字段进行页面编码。Web应用程序中缺乏预防技术会导致严重后果,例如机密性、完整性和身份验证的损失[15]。在本文中,我们提出了一种方法来防止SQLIs。该方法基于数据库信息的加密和可搜索加密.为了验证用户,使用对称密码对用户名进行加密,密钥等于密码。可搜索加密用于在搜索记录时保持信息的私密性。实验结果表明,该方法能够有效地防止SQLIs的发生,并且在时间和规模上与最新的方法具有可比性。图1说明了PHP在构建Web应用程序中的主导地位[16]。SQLI的一些解决方案是基于语言级别[2,6,17,18,19],而PHP是针对上述原因。所提出的方法是基于数据库,而不是特定的供应商或语言,使解决方案高度鲁棒。换句话说,该建议独立于服务器编译器语言,因此它可以可以部署在任何平台上。Fig. 1. Web应用程序的使用统计[16]。本工作的主要贡献如下:我们提出了一种方法来防止SQLI。该方法可以有效地保护电子银行等Web应用程序免受注入攻击.信息的加密抵抗同义反复和注释攻击。可搜索加密是为了抵御其他类型的SQLI。所提出的方法没有指定的平台或任何编程语言。结果表明,该方案对SQLI的对抗并不影响系统性能。本文的其余部分结构如下:第2节提供了初步的背景信息。第-第三部分描述了与该主题相关的先前工作。第4节解释了所提出的方法。第5演示了实现和实验进行验证的建议。第6介绍了实验结果和讨论。第七介绍了所进行的安全性分析,最后一节提出了结论和未来的工作。2. 预赛2.1. SQL注入攻击SQL注入攻击利用数据库层中的漏洞[20]。大多数漏洞都是由于开发人员缺乏对SQLI威胁的了解,或者他们忽略了这些漏洞,因为安全的Web应用程序意味着更高的成本。[21][22][23][24][25][26][27][28][291) 重言式攻击者利用SQL语句中(WHERE)聚类后的条件格式。登录查询的基本条件是检查用户名和密码。与此同时,攻击者注入一个输入,该输入对于该条件总是为真。这种攻击的结果是获得对Web应用程序的访问权限。表1提供了一个同义反复攻击的例子2) 评论攻击者插入SQL注释,用双破折号表示:“--”。实际上,当用户名已知时,攻击者会注释密码字段以实现未经授权的登录。表2提供了一个注释攻击的示例3) 捎带这种攻击的目的是插入一个查询,以合法或原始查询执行。第二个查询不是由开发人员构建的,这意味着Web服务器无法处理结果。因此,这种情况限制了攻击者的查询选项,而没有检索到的信息。基本查询被更新和插入,但大多数使用的查询被删除。这种攻击可以在登录、搜索或插入等任何页面上执行,其结果直接影响数据库,而不会引发警报。表3提供了一个捎带攻击的例子。4) 联盟攻击者在原始查询后插入“UNION”,以检索有关原始查询表的更多信息。的结果●●●●●●M. Abdulridha Hussain,Z. Alaa Hussien,Z. Ameen Abduljabbar等人埃及信息学杂志23(2022)145147表1同义反复攻击的例子。攻击者输入密码= aWeb服务器生成查询SELECT * FROM users WHERE username =数据库结果攻击者以合法用户身份访问Web应用程序。表5替代编码攻击的例子。攻击者输入注意:char(0x73687574646f776e)是search field(id)5; exec(char(0x73687574646f776e));Web服务器生成查询SELECT * FROM users WHERE id = 5; exec(char(0x73687574646f776e));数据库结果当查询通过任何字符过滤器机制时,数据库关闭表2评论攻击的例子表6攻击者输入用户名= adminWeb服务器生成查询SELECT * FROM users WHERE username =数据库结果攻击者以“admin”身份获得对Web应用程序的访问权限逻辑错误攻击的例子。攻击者输入密码Web服务器生成查询SELECT * FROM users WHERE username =数据库结果显示错误(语法在第1行使用near表3搜索页面上的捎带攻击示例攻击者输入搜索字段(id)5;删除表用户;Web服务器生成查询SELECT * FROM users WHERE id = 5;删除表用户;数据库结果从数据库中删除了用户表,这将阻止访问Web应用程序表4工会攻击的例子。攻击者输入注意:(admin,moh)是合法的用户名和密码对用户名= admin密码= mohWeb服务器生成查询SELECT * FROM users WHERE username =数据库结果数据库向攻击者显示用户信息攻击的目的是收集信息以备将来使用,但攻击者已经获得了对SQL数据库面板的直接访问权限表4提供了联合攻击的示例,其中攻击者具有授权帐户并试图通过联合攻击查询检索所有其他帐户。5) 替代编码另一种方法是将查询转换为数据库可解释的代码,如ASCII。攻击者使用此方法欺骗Web服务器短语过滤器,该过滤器用于阻止注入的查询。表5提供了一个alter- nate编码攻击的示例,其中攻击者试图通过将“shutdown”更改为十六进制编码来覆盖存储过程关键字过滤器,6) 逻辑错误攻击者的目标是收集有关数据库的信息,如表名和列属性。该技术基于在查询中插入不正确的符号来激活一个数据库异常给用户,这将显示一个错误通知,如表名。表6提供了一个逻辑错误攻击的示例,其中攻击者试图在用户名字段中插入一个符号,这将导致数据库错误。7) 盲攻击者需要一个GET HTTP请求来执行盲攻击,这是基于将恶意代码插入到统一资源定位符(URL)中。此攻击的目的是通过逐个尝试或比较字母来收集有关数据库的针对手工方法繁琐、耗时的缺点,提出了一种自动化工具SQL-map。SQL-map和其他工具使盲目攻击易于执行。表7提供了一个盲目攻击的例子,其中攻击者试图通过条件结果来查找数据库中是否有任何表以“a”开头换句话说,搜索页面将显示是否存在以“a."开头的表8) 存储过程随着数据库应用的日益复杂,出现了过程、触发器等新的项目。该过程是存储在数据库端执行特定任务的代码。 当攻击者远程运行一个过程时,就实现了存储过程攻击。表8提供了一个存储过程攻击的示例,攻击者试图通过存储过程远程关闭数据库。2.2. 可搜索加密众所周知的保护信息的方法使用密码学技术,特别是在诸如云的公共环境中。顾名思义,可搜索加密允许搜索加密信息以保护隐私[23]。可搜索加密方法之一是基于关键字搜索.这些信息被加密并以明文形式存储在数据库中,其中数据库根据关键字检索记录[24]。2.3. 系统架构模型Web应用程序是一种基于Internet环境的模型,用于模型方之间的通信和数据M. Abdulridha Hussain,Z. Alaa Hussien,Z. Ameen Abduljabbar等人埃及信息学杂志23(2022)145148表7盲目攻击攻击者输入:在URLhttps://localhost/nor/searchbook.php?nam = 5 and 1=(SELECT 1 FROM information_schema.tables WHERE TABLE_SCHEMA =''DBname”AND table_nameREGEXP '^[a]' LIMIT 0,1)Web服务器结果SELECT * FROM users WHERE username =数据库结果如果搜索页面显示结果页面,则数据库包含以“a”开头的表名。当没有页面显示时,没有以“a”开头的表名表8存储过程攻击的例子攻击者输入search field(id)5; exec(SHUTDOWN);Web服务器生成查询SELECT * FROM users WHERE id = 5; exec(SHUTDOWN);数据库结果数据库关闭(shutdown)。[25]第10段。 图 2给出了三个理论方,即客户端、服务器和数据库。实际上,客户端连接到网络,并通过Web浏览器为用户提供图形用户界面(GUI)。服务器使用Web服务器应用程序(如Apache)处理客户端Web应用程序与数据库通信是由于SQL语句限制了插入、更新、删除和选择命令。SQL的使用限制了GUI页面的添加,修改,删除,搜索和登录,其中前三个以相同的方式处理[26]。从数据库中修改或删除记录实际上在两种主要情况下执行。修改记录的场景A:1) 用户请求该页面。2) 表主列以下拉选择的形式呈现给用户.3) 用户选择一个选项并将其提交给服务器。4) 将查看所选记录的字段。5) 必填字段已修改。6) 该表已更新。注:删除记录时,所选记录将在步骤3后删除。修改记录的场景B1) 用户请求该页面。2) 将查看带有空文本框的页面。3) 表主列的值(例如,id)被输入并提交给服务器。4) 如果该值存在,则查看字段。否则,返回错误页面。5) 必填字段已修改。6) 该表已更新。注:删除记录时,如果存在步骤4中指示的值,则删除所选记录。3. 相关作品根据OWASP 2021,注入攻击直到Web应用程序上的第一个威胁为止近年来,已经进行了相当数量的研究来检测和预防SQLI。以下是一些基于加密和编码机制的建议方法,以防止SQLI。Raj等人[17]提出了一种编码格式来存储数据。该方法基于反向插入算法(RIA)。反转输入后,在每组两个字母之间插入一个特殊字符以取消(OR)外观。该提案仅评估登录页面,并且从算法2开始,多个计算和比较组合加载到Web服务器,这消耗更多时间。D’silva [27]建议通过使用哈希技术来防止SQLI当用户在登录阶段创建并比较查询散列值的结果时,该方法计算具有正确值的登录查询的散列值这种方法的缺点是它只能应用于登录阶段,压缩会给Web服务器增加额外的处理。Anjugam 等 人 [28] 提 出 了 对 令 牌 SQL 查 询 的 高 级 加 密 标 准(AES)加密。令牌生成一个动态客户端表,该表被加密并与原始查询一起发送到服务器。服务器根据用户查询生成查找表,解密客户端动态表,然后比较两个表。如果两个表相等,则将查询转发到数据库;否则,阻塞查询。然而,这会重复发送到服务器的请求大小,并消耗客户端和服务器之间的带宽客户端存储动态表的需求可以通过阻塞客户端脚本来阻塞Kumar等人[29]提出了一种在客户端和服务器之间划分的方法。客户端函数过滤敏感字符,查询长度从数据库中检索,而服务器端函数比较消息验证图二. 系统架构模型。M. Abdulridha Hussain,Z. Alaa Hussien,Z. Ameen Abduljabbar等人埃及信息学杂志23(2022)145149代码(MAC)值。在客户端过滤器处检索信息会增加通信量,并且该方法仅保护登录阶段。Namdev等人[18]使用哈希技术来保护登录。哈希值计算用户名和密码,然后计算它们之间的EXOR。登录过程依赖于EXOR值来授权用户。该方法只保护登录名不受重言式攻击,EXOR计算在Web服务器上进行。Avireddy等人[19]提出了一种基于编码的方案,其中每个字符映射多达四个可能的随机字符。从表中选择的值基于下一个字符。查找表必须在客户端和服务器端维护,这是该方案的主要缺点。Balasundaram等人[30]提出了一种基于AES的验证用户的方案。数据库存储每个用户的用户名、密码和密钥。客户端在将用户名和密码发送到服务器之前对其进行加密。服务器在使用数据库表中存储的密钥对接收到的查询进行解密后验证用户名和密码。这种方案的缺点是用户每次登录都必须输入用户名、密码和密钥。该方案只防止重言式攻击。Zhu等人[31]提出了SQL状态的模块化自动化,其中模块维护已知异常模式的列表。缺点集中在预处理上,由于模式的提取和存储已知模式的额外大小,预处理Dalai等人[32]建议在两种情况下比较“where”集群之后的字符串。第一种情况没有用户输入,第二种情况在移除正确变量的类型之后具有用户输入。他们的工作是使用Java进行评估的,并且只处理选定的集群。作者评估了同义反复,并删除了字母表,但没有删除('a'='a')。主要缺点是该方法没有解决插入和更新簇。Xiao等人[33]通过行为和响应分析来检测SQL注入。该方法计算正常状态,将结果存储在数据库中。当用户请求时,将执行服务,并将其与存储的结果进行比较,以查找任何异常值。第一个缺点是压倒性的数据量,第二个缺点是首先执行请求,然后阻止用户。最后,将用户IP和端口保存在黑名单中并不能保证阻止用户,因为用户可能会运行某些代理。Gangelarian[26]使用静态和动态分析的混合方法来预防和检测SQLI。主要方法是从输入查询中提取表名和条件,然后重新构造SELECT查询。如果结果返回数据库中的符号,则拒绝查询。该方法只防止重言式攻击。所提出的方法是基于使用数据库中的加密信息,以防止SQLI。加密仅用于插入信息和关键字搜索,与安全产品相比,这可能会增加时间。可搜索加密用于保护信息隐私和节省解密时间。4. 该方法根据第2节,安全漏洞发生在用户输入字段中,换句话说,HTML文本框字段。所提出的方法是从[34]扩展而来的,该方法基于在处理之前加密所有用户输入。这种方法有助于消除所有恶意代码。加密是指在数据库级别处理的对称密码,如图所示。 3.相关研究表明,多数解决方案仅涵盖登录阶段/页面。相比之下,所提出的方案通过加密和可搜索加密来解决登录和其他页面。第2.3小节显示了大多数网站页面处理数据库来存储Web应用程序数据和信息。在这样的web应用程序中,登录、插入和更新页面可以通过加密用户输入来保护。然而,在该提议中,可以通过应用可搜索加密来保护搜索页面。可搜索加密的作用是保护数据库图三. 建议的方法。M. Abdulridha Hussain,Z. Alaa Hussien,Z. Ameen Abduljabbar等人埃及信息学杂志23(2022)145150见图4。 登录程序。表9登录验证码。$userid =$_POST$password =$_POST@ $db = new mysqli$pw = hash$query ='' select * from users where username = AES_ENGLISH PT('$userid','$userid')'';$query =$db->query($query);if($result->num_rows)echo“已授权登录”; else echo“未授权”;加密信息,因此数据库信息不会因数据解密而泄露下面的小节将根据页面类型和过程(每个实体功能和消息)解释所提出的方案。4.1. 登录过程用户每次访问Web应用程序时都会调用此过程。用户首先调用一个登录表单,其中包含一个空的用户名和密码文本框。表单显示为HTML页面。然后,用户填写文本字段,浏览器将数据提交给Web服务器脚本(如PHP)。Web服务器从HTTP请求中提取数据,计算密钥并将数据提交给数据库。密钥通过哈希函数(SHA3[35])生成密码文本值。数据库引擎使用密钥加密用户名,并对密码用户名执行选择查询。如果找到,则用户是授权用户;否则,显示错误页面,如图所示。表4和表9。备注:MD5,SHA1和SHA2具有抗碰撞能力,这是一种比暴力攻击更容易的方法。当SHA-1图五. 插入程序。M. Abdulridha Hussain,Z. Alaa Hussien,Z. Ameen Abduljabbar等人埃及信息学杂志23(2022)145151和SHA-2在数学上和结构上是相当的,SHA-3由于其抗冲突和原像性而更安全。有鉴于此,SHA-3正在越来越多地取代其他哈希函数[36,37]。4.2. 插入程序用户在输入具有授权用户名的用户帐户时执行插入过程。第一个表单是HTML表10插入代码。$un=$_POST$pw=$_POST@ $db = new mysqli$pw = hash$query =$query =$db->query($query);if($result)echo $unis Added并包含用户名和密码对的必要信息在现代表单中,字段需要由用户填写,任何缺失的信息都会导致服务器拒绝信息并显示错误。在正常情况下,Web服务器生成秘密密钥,该秘密密钥是来自密码的散列值(SHA3)和用于加密的秘密密钥(例如,AES[38,39])在数据库中存储密码的用户名 如图如图5和表10所示,如果插入成功,则Web服务器向用户返回包含后续插入过程的HTML页面。注:数据加密标准(DES)遭受暴力攻击,而高级加密标准(AES)是DES缺点的解决方案[40]。AES密钥是默认大小,为128位。SHA3输出与密钥长度完全一致,但这样的大小将欺骗攻击者,作为中间人攻击,并且从SHA3驱动的密钥将不会被保存。换句话说,数据库信息没有浪费。见图6。更新程序。M. Abdulridha Hussain,Z. Alaa Hussien,Z. Ameen Abduljabbar等人埃及信息学杂志23(2022)145152表11更新代码。$id=$_POST@ $db = new mysqli$key = hash$query =$result = $db->query($query); if($result){//查看记录echoecho<<<<<“”tr> td > id /td> td> input type='text' name='n1 0 value = AES_DESCRIPTION PT(id,echo<<<<<“”tr> td >书名/td> td> input type='text' name='n2 0 value = AES_DESCRIPTION PT(title,echo<<<<<“”tr> td >作者姓名/td> td> input type ='text' name ='n3 0 value = AES_DESCRIPPT(author,echo}else echo更新记录$id=$_POST$key = hash$query =$query =$db->query($query);if($result)echo见图7。 删除程序。表12删除代码。$id=$_POST@ $db = new mysqli$key = hash$query =$query =$db->query($query);if($result)echo“4.3. 更新过程在本提案中,更新过程基于第2.3中的场景B,因为场景A会导致服务器中所有表主列的解密,以便在步骤2中查看。使用存储在web服务器中的秘密密钥对用户输入进行加密,并在数据库中执行选择查询以查找要求记录。数据库对找到的记录进行解密,然后由Web服务器向用户显示。用户提交所需修改后,数据库对字段进行加密并更新表记录,如图6和表11所示。4.4. 删除程序删除过程基于第2.3节中的场景B,并在图中演示。表7和表12。在此过程中,将对用户输入如果找到记录,则将其删除。4.5. 搜索过程本提案中的检索程序基于可检索加密,因为数据库信息是加密的。搜索-M. Abdulridha Hussain,Z. Alaa Hussien,Z. Ameen Abduljabbar等人埃及信息学杂志23(2022)145153见图8。搜查程序表13搜索代码。$nums =$_GET“nam”];@ $db = new mysqli$key = hash$query =$query =$db->query($query);$num_results =$result->num_rows;for($i = 1; $i =$num_results;$i++){$row =$result->fetch_asleep();$id=$rowechoechoecho}如在子部分2.2中所提到的,使用基于关键字的可加密,但是这里关键字被加密并存储在数据库中。该过程首先对用户关键字进行加密,然后在数据库中执行选定的查询如果找到关键字,则解密后将相关记录显示给用户,如图8和表13所示。5. 实施和实验测试攻击发生在浏览器定义协议规则的应用层[41]。浏览器以相同的方式处理正常的客户端和攻击请求,而不管承载请求的应用层协议是什么实际上,HTTP或HTTPS将处理浏览器请求,如[6,17,32,33]所示。实验中使用了HTTP。HTTP帮助网络分析程序读取以纯文本传输的消息。5.1. 执行该提案是使用XAMP 7.2.11[42]作为本地主机服务器实现的,其中包含Apache 2.4.35,PHP 7.2.11和MySQL5.0.12. Web应用程序包括创建用户帐户、登录、注销和搜索功能。与以前的建议的理想实现是为了比较的目的。表14中列出了这些。主要的数据库表是users、table1和books,它们包含来自[43]中数据集的图书信息。数据集信息分为标题、作者、详细信息和关键字,其中详细列包含其他未分类的数据。’table1如果成功,则删除表1。“users”表用于存储授权用户信息以供登录。表“books”与除了所提出的方法之外,所有先前的提案,并且所有提案的用户表都不同,如表14所示。创建用户帐户功能通过两个页面实现。第一个是HTML页面,第二个是PHP页面,用于执行对“users”表的插入查询login函数包含一个PHP页面,该页面对“users”表执行选择查询。如果成功,则创建会话。logout是一个PHP页面,用于结束会话并清空会话变量。最后,搜索功能基于两个页面,HTML和PHP,它们对books表执行所选查询并显示结果。表15显示了函数列表以及每个函数的相关文件。5.2. 实验测试SQL攻击可以根据注入的级别进行分类,并根据每个类别选择实验第一类包含通过在URL中注入恶意代码或通过不正确的请求来收集数据库信息的攻击这只猫-M. Abdulridha Hussain,Z. Alaa Hussien,Z. Ameen Abduljabbar等人埃及信息学杂志23(2022)145154表14建议方法的实现和表列。建议数据库名称表和列普通(理想)libnormal用户(id,用户名,密码)表1(id,名称)书籍(id,title,author,details)Raj[17] libraj users(id,username,password,keyvalue,userlen)table1(id,name)书籍(id,title,author,details)Dsilva[27] libdsilva users(id,username,password,hashdigest)table1(id,name)书籍(id,title,author,details)Namdev libencp users(id,username,password,hashusername,(ENCP)[18]hashpassword,hashexor)table1(id,name)书籍(id,title,author,details)Kumar libmac users(id,username,password,qlength,smac)(MAC)[29]table1(id,name)书籍(id,title,author,details)我们的建议libmoh users(id,username)(moh)table1(id,name)书籍(ID,标题,作者,详细信息,关键字)表15函数和文件。函数文件名调用文件名创建用户帐户inuser.html adduser.php登录authmain.phpauthmain.phplogout.php authmain.phpSearch search.html search.phpegory包括盲目的和逻辑错误的攻击,这些攻击基于试错法,可以使用sqlmap工具轻松地进行实验。 所有页面都使用Mohpro中的HTTPPOST请求来抵御第一类攻击,如图所示。第九章第二类包括联合攻击,它需要控制台访问数据库,因为受害者站点没有预先处理联合结果;换句话说,没有实验测试。Moh建议保护免受联盟攻击;如果网站准备好处理所有客户端查询,则在安全分析部分证明这一点。第三类是针对数据库过程的攻击,包括存储过程攻击和更改编码攻击。证据在安全分析部分。第四类是针对网站输入字段的攻击,包括同义反复、评论和捎带攻击。实验使用了一个本地主机服务器,它运行Apache来处理HTTP消息,一个PHP编译器和MySQL数据库。两种情况下,没有和攻击,用于评估浏览Web应用程序。所提出的方法或解决方案的每个功能基于以下实验步骤评价反应。1) 创建用户帐户a)在客户端上运行浏览器应用程序。b)使用浏览器地址栏调用inuser.html。c)请输入用户名和密码d)服务器调用adduser.php并向数据库发送插入查询。e)服务器显示“用户添加成功”消息。2) 登录a)在客户端上运行浏览器应用程序。b)使用浏览器地址栏调用authmain.phpc)请输入用户名和密码登录d)服务器调用authmain.php并将选择查询发送到数据库。e)如果用户被授权,则服务器设置会话变量并显示登录成功。f)如果用户未被授权,则服务器显示错误消息。3) 注销a)当用户成功登录时,用户选择注销链接。b)服务器调用logout.php并取消设置会话变量。c)服务器显示4) 搜索a)在客户端上运行浏览器应用程序。b)使用浏览器地址栏调用search.html。c)输入搜索文本或关键字。d)服务器调用search.php并向数据库发送一个选择查询。e)服务器向用户显示结果攻击场景将恶意代码注入登录和搜索功能。攻击者在登录上使用同义反复和注释类型的SQL注入,并在搜索函数上使用捎带攻击表16说明了这些攻击。6. 结果和讨论从上述实验中收集的数据根据没有攻击和有攻击的功能进行这些功能在第5中提到。使用Wireshark[44]捕获每个过程的数据,其中信息是基于HTTP消息提取的HTTP消息是请求,图第九章在Moh提案上试验SQLmapM. Abdulridha Hussain,Z. Alaa Hussien,Z. Ameen Abduljabbar等人埃及信息学杂志23(2022)145表16155攻击中的文本输入。攻击对功能输入文本重言式登录用户名:a密码:a评论登录用户名:admin密码:x捎带搜索London’; drop table具有基本的时间和大小度量的响应。往返时间(RTT)是到达响应和发送请求之间的时间差。RTT包括请求到达服务器的时间、Web服务器计算时间、数据库访问和检索时间以及从服务器到客户端所花费的时间。大小表示客户端和服务器之间的数据传输量。表17显示了Web服务器页面、表和数据库大小。有些文件的大小是固定的,因为目前的建议不影响页面代码,如inuser.html,logout.php和search.html。可以忽略adduser.php中的大小更改,因为每个用户只调用一次页面。authmain.php页面在每次登录时被频繁调用,其中Kumar的文件大小最大,而所有其他文件都处于正常状态。Moh是search.php中最大的文件大小,这是由关键字比较代码引起的。由于每条记录的关键字都经过加密,因此book表的大小更大。每个建议的列数将影响用户表的大小,其中Namdev表是最大的,因为每个用户的详细信息的数量。将该方案的结果与其他在Web应用程序中防止SQLI攻击的方法进行了比较。结果见下一小节。以下结果根据函数进行划分,结果值为(0)表示攻击被阻止。6.1. 创建帐户针对RTT、HTTP请求和HTTP响应大小对创建的帐户函数进行测试,以比较不同的提议。此功能不会针对使用搜索功能进行深入测试的攻击进行测试。图10和表18展示了创建账户功能的RTT,其包括服务器处理时间。正常是最短的RTT,这是显而易见的,因为没有加密或编码过程发生。Namdev是最长的RTT,这是因为散列函数计算两次的进程数和160位的EXOR操作。Moh建议是第二长的,但此函数为每个用户生成或调用一次。请求和响应的调用网页大小对于所有建议都是相同的,因为内容是相等的。这本质上是HTML页面部分,如图11和表19所示。创建的帐户请求具有相同的值,因为携带的信息是用户名和密码。最后,响应大小见图10。 RTT创建帐户。在成功创建用户后,基于服务器HTML响应创建帐户。6.2. 登录和注销当用户成功登录授权或未授权的用户场景时,会出现注销功能。如果没有发生注销,则攻击者被阻止。从图 12、13、14表20、21和22中,呼叫网页是根据平均值计算的,其中所有建议都采用几乎相同的RTT、请求和响应大小。对于所有指标中的所有建议,无攻击注销是相等的Kumar登录是最长的由于加密操作,Moh具有第二大RTT值所有的提案阻止重言式攻击与不同的RTT,这是基于建议的复杂性。值得注意的是,Namdev和Dsilva并没有阻止或阻止其他提案所阻止的评论攻击,而Moh提案采用了更短的RTT值。响应大小在平均值范围内,RTT表示服务器决策时间,这是变化的,Kumar需要最长的时间来评估。6.3. 搜索图16和表24中的请求大小以及图17和表25中的响应大小解释了所有测试提案的搜索功能。所有经过测试的提案在没有攻击和有攻击的情况下都具有相同的大小。然而,Moh关于攻击下响应规模的建议与其他情景不同,因为表17文件、表和数据库的大小(KB)。正常纳姆德夫Raj德席尔瓦KumarMOHinuser.html381381381381381381adduser.php684826900756774717authmain.php155817251892173437231589search.html295295295295295295search.php118511831182118511821223table1.sql995993992995992992users.sql151822041698174617881463books.sql317,543317,541317,540317,543317
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功