PHP中 sprintf()格式化输出详解

sprintf()函数把格式化的字符串写入变量中。

arg1、arg2、++参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个%符号处,插入arg1,在第二个%符号处,插入arg2,以此类推。

注释:如果%符号多于arg参数,则您必须使用占位符。占位符位于%符号之后,由数字和“\$”组成。

$number = 2;

$str = "Shanghai";

$txt = sprintf("There are %u million cars in %s.",$number,$str);

echo $txt;

?>

运行结果为:There are 2 million cars in Shanghai.

1.使用格式值%f:

$number = 123;

$txt = sprintf("%f",$number);

echo $txt;

?>

运行结果为:123.000000

2.使用占用符:

$number = 123;

$txt = sprintf("带两位小数:%\$.2f

不带小数:%1\$u",$number);

echo $txt;

?>

运行结果为:带有两位小数:123.00

不带小数:123

在php的格式化字符串中,%后的一个字符(除了'%')会被当作字符类型,而被吃掉,单引号',斜杠\也不例外。

如果能提前将%' and 1=1#拼接入sql语句,若存在SQLi过滤,单引号会被转义成\'

select * from user where username = '%\' and 1=1#';

然后这句sql语句如果继续进入格式化字符串,\会被%吃掉,'成功逃逸

sql = "select * from user where username = '%\' and 1=1#";

$args = "admin";

echo sprintf($sql,$args);

result: select * from user where username = ' ' and 1=1#' and password = 'admin';

php中sql格式化字符串,sqli注入-sprintf格式化字符串带来的注入隐患相关推荐

  1. bWAPP中SQL注入思路

    bWAPP中SQL注入思路 SQL Injection (GET/Search) 等级:low 首先看看正常搜索的情况,这里我输入了一个字母b,可以看出来他把标题带有b的电影信息全都给搜出来了 在这里 ...

  2. ssacanf\Sprintf格式化字符串

    一.sscanf sscanf() - 从一个 int sscanf(const char *buffer,const char *format,[argument ]...); buffer 存储的 ...

  3. java 防止sql注入_Java中SQL注入以及如何轻松防止它

    java 防止sql注入 什么是SQL注入? (What is SQL Injection?) SQL Injection is one of the top 10 web application v ...

  4. CTF中SQL注入常见题型整理

    前言 SQL在CTF每一次比赛中基本上都会出现,所以有了这一篇总结,防忘. 简而言之:SQL注入用户输入的数据变成了代码被执行. 这一篇这要写的是sql注入中各种经典类型的案例.暂时只写这么一点,后面 ...

  5. java字符串 大括号_string.format格式化字符串中转义大括号“{}”

    今天,用Java读取配置文件占位符,使用String.Format(string format,object arg0)方法.以前只知"{0}"为索引占位符(即格式项),与参数列表 ...

  6. sql 解析字符串添加到临时表中 sql存储过程in 参数输入

    sql 解析字符串添加到临时表中  sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表   FROM dbo.Func_SplitOneCol ...

  7. sql注入程序_Java应用程序中SQL注入

    sql注入程序 在本文中,我们将讨论什么是SQL注入攻击. 以及它如何影响任何Web应用程序使用后端数据库. 在这里,我专注于Java Web应用程序. 开放Web应用程序安全性项目(OWAP)列出了 ...

  8. Mybatis中SQL注入攻击的3种方式,真是防不胜防!

    作者 | sunnyf 来源 | https://www.freebuf.com/vuls/240578.html 前言 SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种O ...

  9. Oracle ------ SQLDeveloper中SQL语句格式化快捷键

    Oracle SQL Developer中SQL语句格式化快捷键: 每次sql复制到SQL Developer面板的时候,格式老不对,而且看起来很不舒服,所有的sql都挤在一行完成. 这时我们可以全选 ...

最新文章

  1. shell+中sum的用法_Shell中函数使用
  2. python读取大文件太慢_python读取大文件越来越慢的原因与解决
  3. 尚学linux课程---8、rpm软件包安装
  4. Template Code 无法使用 this.Host 报错
  5. 价值投资/指标选股(akshare)
  6. 一季度平板电脑市场:苹果稳居第一,华为第二!
  7. 在UAP中如何通过WebView控件进行C#与JS的交互
  8. knn算法java版_KNN算法的实现详解
  9. MVC通过重写OnActionExecuting获取控制器,方法和域
  10. Devexpress GridView 提交焦点列
  11. Android平台的通话计时源码
  12. Ajax控件和类库简析
  13. 程序设计导引及在线实践之大整数除法
  14. Java 经纬度转UTM投影
  15. 崔云php_佘家村里的“茉莉香”
  16. 2020全国高校计算机能力挑战赛(word模拟题)
  17. mysql弱口令加强,Mysql弱口令取得系统权限(续)
  18. unity 许可证即将到期_了解Unity即将推出。
  19. fedora 20 安裝 及 配置桌面環境
  20. adb push文件夹

热门文章

  1. 什么是Docker?看这一篇文章就够了
  2. 行,Python玩大了!​取代Excel,程序员:太牛!你怎么看?
  3. 996!007!同是敲了2万行代码,为什么他却晋升了?
  4. 云栖大会|十年阿里云存储进化史:今天最好的表现就是明天最低的要求
  5. 神龙X-Dragon,这技术“范儿”如何?| 问底中国IT技术演进
  6. Cloud一分钟 | 云存储服务商​Egnyte获7500万美元E轮融资,高盛领投
  7. video怎么重新加载 vue_vue 事件中更改video的src成功,视频不加载
  8. DMN结合bpmn简化流程_07
  9. VS Code 常用快捷键
  10. idea解决maven pom依赖下载失败