如果PHP前后端分离还会有sql注入攻击这些吗

如果PHP前端端分离还会有sql注入攻击这些吗,现在用PHP开发的网站,天天受到
各种攻击,如果转为前后端分离的话这种情况会改善吗

4个回答

sql注入攻击和前后端分离没有关系,它主要是指,你的代码中有直接拼接sql的代码,而没有加以处理,比如

$sql = "select * from table where title = '" + $keyword + "'";
这里的keyword变量是用户输入的

那么如果用户输入了 ' or 1=1 or ''='
那么所有的数据都会查询出来。

因此可见,只有正确处理sql查询的构造,才能避免sql注入

q2617426
无感五 大佬在问一下我前后端分离对数据传输严格要求怎么样呢
3 个月之前 回复

前后端分离并不是用于解决SQL注入问题而是加强团队开发效率。

楼主想要避免SQL注入安全问题的话,尽量使用目前主流的框架来开发,如laravel、yii2等,他们都已经对SQL处理做了很好的封装了

或者自己对输入做敏感词过滤,不过安全性不高罢了

你好,这是会有的,要想防止sql注入, 对提交数据进行验证处理即可,可以用前后端双层验证,前端正则了, 后端还可以继续正则一次,彻底消除这种问题

sql注入跟前后端分离没啥关系吧,主要是根据变量进行敲诈的.在程序中将需要查询的字段先model出来,不需要的字段别model,这样能稍微缓解一些sql注入.
把数据表先处理成一个模型,再去模型中查数据,安全点.实在不行,像楼上说的一样,做验证处理,每次都要验证,就没那么好注入了.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
PHP SQL注入攻击与防御
PS:下章节我会就XSS/CSRF写一篇文章,还请各位关注1.什么是SQL注入攻击?百度百科:所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是...
SQL注入攻击:php篇
1.用注释欺骗MySQL 注释号--导致SQL代码行的余下部分被忽略 SQL注入所利用的漏洞是没有验证表单域中可能出现的危险字符。“危险字符”就是任何有可能改变一个SQL查询实质的字符,如逗号、引号或--注释字符,甚至一段数据最后的空格也可能是有害的。 2.SQL注入可以通过适当的处理表单数据来避免。 trim()函数去除这个表单数据的前导或末尾空格(去除额外空格) mysqli
PHP防SQL注入攻击
以下摘自百度知道 过滤一些常见的数据库操作关键字, select , insert , update , delete , and , * 等或通过系统函数addslashes()对内容进行过滤,addslashes()函数返回在预定义字符之前添加反斜杠的字符串。预定义字符是:单引号(’),双引号(”),反斜杠(\),NULL php配置文件中register_globals=off;
注入攻击--SQL注入
注入攻击的本质是把用户输入的数据当做代码执行。这里有两个关键条件:   1)用户能够控制输入   2)原本程序要执行的代码,拼接了用户输入的数据 SQL注入的典型例子 var ShipCity; ShipCity = Request.form("ShipCity"); var sql = "select * from OrdersTable where ShipCity='"+Sh
注入攻击之sql注入
在1998年,一位名为rfp的黑客发表了一篇题为“NT Web Technology Vulnerabilities”的文章 注入攻击的两个条件: (1).用户能够克制数据的输入--在这里,用户能够控制变量; (2).原本要执行的代码,凭借了用户的输入; 一般输入一个‘单引号就能引起执行查询语句的语法错误,有些服务器会直接返回错误回显,有些服务器则不返回任何
ASP.NET 还会有SQL注入的烦脑吗??
如题,刚转到.net 请赐教。
php命令注入攻击
这次实验内容为了解php命令注入攻击的过程,掌握思路。 命令注入攻击 命令注入攻击(Command Injection),是指黑客通过利用HTML代码输入机制缺陷(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容。从而可以使用系统命令操作,实现使用远程数据来构造要执行的命令的操作。 PHP中可以使用下列四个函数来执行外部的应用程序或函数:system、exec、passthru、shell...
php侧防止js脚本和sql注入攻击
mysql_real_escape_string($str,$connect); echo htmlspecialchars($str);   w3解释: htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。 预定义的字符是: & (和号)成为 & " (双引号)成为 " ' (单引号)成为 ' < (小于)成为 < &...
PHP中SQL注入与跨站攻击的防范
SQL injection即SQL注入是我们每个WEB程序员都需要面对的问题,一个WEB应用假如没有起码的安全性,那么其它的一切就可以免谈了。注入问题在ASP上可谓是闹得沸沸扬扬,当然还有不少PHP程序“遇难”。至于SQL injection的详情,网上的文章很多,在此就不作赘述。追其罪恶之源,就是我们误以为用户提交的数据是可靠的。 无论你是否有足够的PHP安全开发经验,本文的目...
PHP 预防CSRF、XSS、SQL注入攻击
1.服务端进行CSRF防御服务端的CSRF方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数。(1).Cookie Hashing(所有表单都包含同一个伪随机值):这可能是最简单的解决方案了,因为攻击者不能获得第三方的Cookie(理论上),所以表单中的数据也就构造失败了(2).验证码  这个方案的思路是:每次的用户提交都需要用户在表单中填写一个图片上的随机字符串,厄....这个方...
【Day49】SQL注入攻击
首先我们了解一下,什么是sql?SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。 那么什么是sql注入呢? 看起来很复杂,其实很简单就能解释,SQL注入就是一种通过操作输入来修改
SQL注入攻击
SQL注入攻击: 攻击者把SQL命令插入到web表单的输入域或者页面请求的查询字符中,欺骗服务器执行恶意的SQL命令。 常见防止SQL注入的方法: 1、替换单引号:把所有单独出现的单引号转义成双引号 2、限制账户的权限:不同用户账户执行查询、删除等操作不同 3、检验查询返回记录的数量 4、加强用户输入的验证,拒绝包含分号、单引号、注释号输入等 5、JAVA操作数据库使用Prepare
安全测试之SQL注入攻击
一、SQL注入攻击的概念 首先说一下,攻击者之所以可以利用自己输入的数据来达到攻击网站的目的,原因就在于SQL语言作为一种解释型语言,它的数据其实是由程序员编写的代码和用户提交的数据共同组成的。正是因为这个原因,攻击者可以构造对自己有利的数据,利用网站的一些SQL漏洞来达到恶意的目的。 SQL注入,就是指攻击者将恶意的字符串或者语句等信息作为参数输入,服务器在验证这个字段的时候,读取攻击者输入的
SQL注入攻击实验报告
SQL注入攻击实验报告,自己写了试验的网站,举了一些基本的攻击和防御方法,有xp_cmdshell的执行,用的是sqlserver 2005
sql注入攻击实验
sql注入攻击,先自己搭建一个网站,链接数据库必须用Sa链接
SQL注入攻击与防御
SQL注入是Internet上最危险、最有名的安全漏洞之一,本书是目前唯一一本专门致力于讲解SQL威胁的图书。本书作者均是专门研究SQL注入的安全专家,他们集众家之长,对应用程序的基本编码和升级维护进行全面跟踪,详细讲解可能引发SQL注入的行为以及攻击者的利用要素,并结合长期实践经验提出了相应的解决方案。针对SQL注入隐蔽性极强的特点,本书重点讲解了SQL注入的排查方法和可以借助的工具,总结了常见的利用SQL漏洞的方法。另外,本书还专门从代码层和系统层的角度介绍了避免SQL注入的各种策略和需要考虑的问题。   本书主要内容   SQL注入一直长期存在,但最近有所增强。本书包含所有与SQL注入攻击相关的、当前已知的信息,凝聚了由本书作者组成的、无私奉献的SQL注入专家团队的所有深刻见解。   什么是SQL注入?理解它是什么以及它的基本原理   查找、确认和自动发现SQL注入   查找代码中SQL注入时的提示和技巧   使用SQL注入创建利用   通过设计来避免由SQL攻击所带来的危险 第1章 什么是SQL注入 1 1.1 概述 2 1.2 理解Web应用的工作原理 2 1.2.1 一种简单的应用架构 3 1.2.2 一种较复杂的架构 4 1.3 理解SQL注入 5 1.4 理解SQL注入的产生过程 10 1.4.1 构造动态字符串 10 1.4.2 不安全的数据库配置 16 1.5 本章小结 18 1.6 快速解决方案 18 1.7 常见问题解答 19 第2章 SQL注入测试 21 2.1 概述 22 2.2 寻找SQL注入 22 2.2.1 借助推理进行测试 22 2.2.2 数据库错误 29 2.2.3 应用响应 38 2.2.4 SQL盲注 42 2.3 确认SQL注入 45 2.3.1 区分数字和字符串 46 2.3.2 内联SQL注入 46 2.3.3 终止式SQL注入 51 2.3.4 时间延迟 59 2.4 自动寻找SQL注入 60 2.5 本章小结 68 2.6 快速解决方案 68 2.7 常见问题解答 69 第3章 复查代码中的SQL注入 71 3.1 概述 72 3.2 复查源代码中的SQL注入 72 3.2.1 危险的编码行为 74 3.2.2 危险的函数 79 3.2.3 跟踪数据 82 3.2.4 复查PL/SQL和T-SQL代码 88 3.3 自动复查源代码第1章 什么是SQL注入 94 3.3.1 YASCA 96 3.3.2 Pixy 96 3.3.3 AppCodeScan 97 3.3.4 LAPSE 97 3.3.5 SWAAT 97 3.3.6 Microsoft SQL注入源代码分析器 98 3.3.7 CAT.NET 98 3.3.8 商业源代码复查工具 98 3.3.9 Ounce 99 3.3.10 Fortify源代码分析器 100 3.3.11 CodeSecure 100 3.4 本章小结 100 3.5 快速解决方案 101 3.6 常见问题解答 102 第4章 利用SQL注入 105 4.1 概述 106 4.2 理解常见的利用技术 107 4.3 识别数据库 108 4.3.1 非盲跟踪 109 4.3.2 盲跟踪 112 4.4 使用UINON语句提取数据 113 4.4.1 匹配列 114 4.4.2 匹配数据类型 115 4.5 使用条件语句 119 4.5.1 方法1:基于时间 120 4.5.2 方法2:基于错误 122 4.5.3 方法3:基于内容 123 4.5.4 处理字符串 123 4.5.5 扩展攻击 125 4.5.6 利用SQL注入错误 126 4.5.7 Oracle中的错误消息 128 4.6 枚举数据库模式 131 4.6.1 SQL Server 131 4.6.2 MySQL 136 4.6.3 Oracle 139 4.7 提升权限 142 4.7.1 SQL Server 142 4.7.2 Oracle 147 4.8 窃取哈希口令 148 4.8.1 SQL Server 149 4.8.2 MySQL 150 4.8.3 Oracle 151 4.9 带外通信 154 4.9.1 E-mail 154 4.9.2 HTTP/DNS 157 4.9.3 文件系统 158 4.10 自动利用SQL注入 161 4.10.1 Sqlmap 161 4.10.2 Bobcat 164 4.10.3 BSQL 164 4.10.4 其他工具 166 4.11 本章小结 166 4.12 快速解决方案 167 4.13 常见问题解答 168 第5章 SQL盲注利用 171 5.1 概述 172 5.2 寻找并确认SQL盲注 173 5.2.1 强制产生通用错误 173 5.2.2 注入带副作用的查询 173 5.2.3 拆分与平衡 173 5.2.4 常见的SQL盲注场景 175 5.2.5 SQL盲注技术 176 5.3 使用基于时间的技术 183 5.3.1 延迟数据库查询 183 5.3.2 基于时间推断的考虑 188 5.4 使用基于响应的技术 189 5.4.1 MySQL响应技术 189 5.4.2 SQL Server响应技术 191 5.4.3 Oracle响应技术 192 5.4.4 返回多位信息 194 5.5 使用非主流通道 195 5.5.1 数据库连接 195 5.5.2 DNS渗漏 196 5.5.3 E-mail渗漏 200 5.5.4 HTTP渗漏 200 5.6 自动SQL盲注利用 202 5.6.1 Absinthe 203 5.6.2 BSQL Hacker 204 5.6.3 SQLBrute 206 5.6.4 Sqlninja 207 5.6.5 Squeeza 208 5.7 本章小结 209 5.8 快速解决方案 209 5.9 常见问题解答 210 第6章 利用操作系统 213 6.1 概述 214 6.2 访问文件系统 215 6.2.1 读文件 215 6.2.2 写文件 229 6.3 执行操作系统命令 237 6.4 巩固访问 243 6.5 本章小结 245 6.6 快速解决方案 245 6.7 常见问题解答 246 6.8 尾注 247 第7章 高级话题 249 7.1 概述 250 7.2 避开输入过滤器 250 7.2.1 使用大小写变种 250 7.2.2 使用SQL注释 250 7.2.3 使用URL编码 251 7.2.4 使用动态的查询执行 253 7.2.5 使用空字节 254 7.2.6 嵌套剥离后的表达式 255 7.2.7 利用截断 255 7.2.8 避开自定义过滤器 257 7.2.9 使用非标准入口点 257 7.3 利用二阶SQL注入 259 7.4 使用混合攻击 263 7.4.1 修改捕获的数据 263 7.4.2 创建跨站脚本 263 7.4.3 在Oracle上运行操作系统命令 264 7.4.4 利用验证过的漏洞 265 7.5 本章小结 265 7.6 快速解决方案 266 7.7 常见问题解答 267 第8章 代码层防御 269 8.1 概述 270 8.2 使用参数化语句 270 8.2.1 Java中的参数化语句 271 8.2.2 .NET(C#)中的参数化语句 272 8.2.3 PHP中的参数化语句 274 8.2.4 PL/SQL中的参数化语句 275 8.3 输入验证 275 8.3.1 白名单 276 8.3.2 黑名单 277 8.3.3 Java中的输入验证 278 8.3.4 .NET中的输入验证 279 8.3.5 PHP中的输入验证 280 8.4 编码输出 280 8.5 规范化 286 8.6 通过设计来避免SQL注入的危险 289 8.6.1 使用存储过程 289 8.6.2 使用抽象层 290 8.6.3 处理敏感数据 290 8.6.4 避免明显的对象名 291 8.6.5 创建数据库Honeypot 292 8.6.6 附加的安全开发资源 293 8.7 本章小结 293 8.8 快速解决方案 294 8.9 常见问题解答 295 第9章 平台层防御 297 9.1 概述 298 9.2 使用运行时保护 298 9.2.1 Web应用防火墙 299 9.2.2 截断过滤器 304 9.2.3 不可编辑的输入保护与可编辑的输入保护 308 9.2.4 URL策略/页面层策略 308 9.2.5 面向方面编程 309 9.2.6 应用入侵检测系统 310 9.2.7 数据库防火墙 310 9.3 确保数据库安全 310 9.3.1 锁定应用数据 311 9.3.2 锁定数据库服务器 314 9.4 额外的部署考虑 316 9.4.1 最小化不必要信息的泄露 317 9.4.2 提高Web服务器日志的冗余 320 9.4.3 在独立主机上部署Web服务器和数据库服务器 320 9.4.4 配置网络访问控制 321 9.5 本章小结 321 9.6 快速解决方案 321 9.7 常见问题解答 322 第10章 参考资料 325 10.1 概述 326 10.2 SQL入门 326 10.3 SQL注入快速参考 331 10.3.1 识别数据库平台 331 10.3.2 Microsoft SQL Server备忘单 333 10.3.3 MySQL备忘单 338 10.3.4 Oracle备忘单 341 ……
sql注入攻击
第一种:rnDAL层rn public DataTable DengLu()rn rn StringBuilder sql = new StringBuilder();rn sql.Append("select * from T_manager");rn return DAL.DbHelper.ChaXun(sql.ToString());rn rnrn、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、rn 后置代码rn private void btn_OK_Click(object sender, EventArgs e)rn rn if (txt_M_id.Text.Trim() == "")rn rn MessageBox.Show("请输入登陆账号!!!", "系统消息");rn txt_M_id.Focus();rn rn else if (txt_M_pass.Text.Trim() == "")rn rn MessageBox.Show("请输入登陆密码!!!", "系统消息");rn txt_M_pass.Focus();rn rn elsern rn BLL.T_manager bll = new BLL.T_manager();rn DataTable dt = bll.DengLu();rn for (int i = 0; i < dt.Rows.Count; i++)rn rn if (txt_M_id.Text == dt.Rows[i]["M_id"].ToString() && txt_M_pass.Text == dt.Rows[i]["M_password"].ToString())rn rn //MessageBox.Show("登陆成功!!!", "系统消息");rn zhuchuangti zct = new zhuchuangti();rn zct.Show();rn this.Visible = false;rn rn elsern rn MessageBox.Show("账号或密码错误!!!", "系统消息");rn rn rn rn rnrn第二种:rnstring sql = string.Format("select count(*) from biao where id='0' and name='1'",id,pwd);rnSqlCommand cmd = new SqlCommand(sql,conn);rn conn.Open();rnint a =(int)cmd.ExecuteScalar();rnif (a> 1)rn rn MessageBox.Show("用户不存在");rnrnelse rn rn MessageBox.Show("登录成功");rn rn这两种写法还存在sql注入攻击么??如果可以求附上代码,求大神解答。
sql注入攻击?
sql注入攻击是怎么实现的,一直不知道如何通过页面去攻击网站.rn哪位大侠指教下.
sql注入攻击原理分析
sql注入攻击原理分析 sql注入攻击原理分析 sql注入攻击原理分析
《SQL注入攻击与防御》
《SQL注入攻击与防御》
聊聊 SQL 注入攻击
sql注入是一个很基础的问题,一说大家都好像知道,听说过,如果再细说说,什么sql注入攻击,怎么sql注入攻击,sql注入攻击有什么危害,十有八九都说不清楚,因此,本篇文章就来聊聊这些问题。 什么是 SQL 注入攻击? 官方一点的说法是这样的: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域或页面请求的查询参数中,最终达到欺骗服务器执行恶意的SQL命令。 简单来说就...
这段代码会有sql注入的安全问题吗?
n这段代码会有sql注入的安全问题吗?n```n public static List> getEmpNo(Object deptno)n n StringBuilder sql = new StringBuilder();n sql.append("select * from a where 1=1 ");n if(deptno!=null) n sql.append("deptno="+deptno+" ");n n return dao.query(sql.toString());n n```nn
SQL注入攻击法
SQL 注入攻击法
小试牛刀:SQL 注入攻击
小试牛刀:SQL注入攻击一、检测注入点二、判断是否存在 SQL 注入可能三、数据库爆破四、字段爆破五、数据库表爆破六、用户名、密码爆破七、总结 一、检测注入点 首先,在 http://120.203.13.75:6815/?id=1 目标站点页面发现了 ?id,说明可以通过查询 id=1 的内容来获得页面。 这相当于查询语句: select * from [表名] where id = '1'; ...
一次sql注入攻击
喜欢学习 ,但是不想找漏洞 ,好麻烦 ,还不一定有一个漏洞 ...... 如果文章有什么违规的行为 ,请及时告诉我 ,然后会及时删除本文章 .... 网站是我在google上搜到的 ,网站画面看着高大上 ~~~ 一个页面一个页面的找,寻找有输入参数的地方,然后进行测试 ,本来我以为没有注入的时候 突然 ,看到了一小句话 ...
信息安全之SQL注入攻击
目录 一、简介 二、案例 1.案例1(SQL恶意填入) 2.案例2(危险字符注入) 三、预防 1.过滤特殊字符 2.严格使用参数绑定 3.合理使用框架防注入机制 一、简介 SQL注入是注入式攻击中的常见类型。SQL注入式攻击是未将代码与数据进行严格的隔离,导致在读取数据库数据的时候,错误地把数据作为代码的一部分执行,导致攻击者可以通过sql灵活多变的语法,构造精心巧妙的语句...
Web攻击 -SQL注入
web 常见攻击方式 1、SQL注入攻击 2、跨站脚本攻击 - XSS 3、跨站伪造请求攻击 - CSRF 4、文件上传漏洞攻击 5、分布式拒绝服务攻击 - DDOS SQL注入产生的原因 : 本质是 : 未经检查 的 用户输入数据,编译后 变成了代码 被 执行。(导致代码里有用户数据可以 通过猜测获得) SQL注入 : 用户提交的数据,被 数据库 系统 编译 ,...
sql注入攻击与防护
一:不同数据库的SQL注入1:Access的sql注入,ASP+Access;猜解:猜解表名,猜解列名,猜解字段值长度,    ASC||逐字解码法猜解字段值。    a:对表名的猜解,select count(*|这个星号代表全部|) from +formname&amp;gt;0;    猜表名:and (select count(*) from table)&amp;gt;0/and exists (se...
sql注入攻击之sqlmap
手工进行sql注入对于初学者有一定的难度,本节课程针对于信息安全小白讲解怎么使用sqlmap来进行sql注入,结合前面章节将的内容可以的判断互联网上网站是否存在sql注入。
简单的SQL注入攻击
一、寻找目标 二、常见注入方法 三、SQL注入攻与防
Web SQL注入攻击
http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html
SQL漏洞注入攻击
SQL漏洞注入攻击 使用statement进行sql处理存在安全隐患eg: String sql = &quot;select * from users where username='&quot;+name+&quot;' and password='&quot;+password+&quot;'&quot;; stmt = conn.createStatement(); stmt.executeQuery(sql);  第一次登录: 请输入用户名: ...
SQL注入攻击——信息安全
SQL注入攻击,信息安全专业必学内容,希望对大家有所帮助
SQL注入攻击isbase
较基础的SQL注入攻击教程,值得新手看看。。
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法