- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个获取帖子标题的代码,如下所示:$content = str_replace('%title', $post->post_title, $content );
我想使用数据库中我自己的标题。
我写了这段代码:
global $wpdb;
$mycontent = $wpdb->get_var(
'SELECT `meta_value` FROM `wp_postmeta` WHERE `post_id` = '.$post->ID.' AND `meta_key` = \'my_seo_title\';'
);
$content = str_replace('%my_seo_title', $mycontent , $content);
这会造成安全问题吗?
最佳答案
Does it have security issue?
万一您的 $post
对象被其他东西替换(此时我认为网站的安全性已经受到损害),攻击者可以替换 $post->ID
返回的值带有恶意查询字符串(又名 SQL Injection )。
为了避免这种情况,正如其他人已经指出的那样,您应该使用 prepare() 转义查询。方法来自 $wpdb
对象:
$mycontent = $wpdb->get_var(
$wpdb->prepare(
"SELECT `meta_value` FROM `wp_postmeta` WHERE `post_id` = %d AND `meta_key` = %s;",
array( $post->ID, 'my_seo_title' )
)
);
出于好奇,当我们已经有了 get_post_meta() 时,为什么还要从数据库中手动检索元值?功能(哪个会自动为您进行整个安全检查)?我的意思是,您可以将代码替换为:
$mycontent = get_post_meta( $post->ID, 'my_seo_title', true );
...并且忘记手动编写查询和/或确保它们安全(当不需要时)。
关于php - 在str_replace中使用sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53024825/
当前代码仅将空格替换为破折号(-) $url = str_replace(' ','-',$url); 我只想在 URL 中使用字母、数字和破折号 (-)。 让我知道技巧。 最佳答案 你想要这个来生成
$str 是 foreach 中的某个值。 $str = str_replace('_name_','_title_',$str); 如何制作if str_replace? 我想做的事情 if hav
strtr 有两种形式: string strtr ( string $str , string $from , string $to ) string strtr ( s
str_replace — 子字符串替换 [str_replace] mixed str_replace ( mixed $search
我试图在回显之前从文本中删除句点和逗号之前的所有空格。 文本可能看起来像这样,并且到处都有空格。 Bla bla bla... 这是我的代码,尽管它成功删除了任何 () 并将其替换为“无”: $str
我有一个看起来很简单的查询。我在 PHP 中有以下代码: $newThumb = str_replace('style="width:170px;"','',$nolinkThumb); 我遇到的问题
您好! 我从 .xlsx 文件中获取字符串 ->"N°X" 我想用 Num_X 替换 "N°" 我正在尝试用 $var = str_replace("N°","Num_",$var); 但没有任何东西
我正在尝试仅获取视频文件的持续时间。 我将使用 ffmpeg 抓取任何长度的视频文件的精确 10 个缩略图。 为此,我需要找出持续时间,然后除以 10 来做 ffmpeg。 结果是一样的。 str_r
我正在使用 str_replace,但它无法正常工作。我有一个文本区域,输入是用表单发送的。当服务器接收到数据时,我想将新行更改为“,”。 $teams = $_GET["teams"]; $team
我已经研究过并且需要找到用一系列随机可能性替换需求的最佳方法。 即: $text = "Welcome to [city]. I want [city] to be a random version
这是我试图用“-”替换单词之间的空格的字符串。 $mystring = "Color red, Color blue, Color black"; $newstring = str_replace('
我需要打开一个文件,替换一些内容(12345 为 77348)并保存。据我所知 $cookie_file_path=$path."/cookies/shipping-cookie".$unique;
奇怪,我一定是漏掉了什么。 $city = "vancouver"; $insert1 = "https://www.site.ca/buy/vancouver/28130965/"; $url
我在将数组返回到指定字符串时遇到了问题。所以,这是我尝试过的代码。 $setValues = array("test1", "test2", "testurl"); $change = join("'
这个问题不太可能对任何 future 的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visit the h
如何使用str_replace但在搜索字符串时不区分大小写? 例如,假设我想替换 ABcD与 a 。生成的命令将是 $string=str_replace("ABcD","a",$string); 。
我正在循环浏览表格中的标题,因此它本质上是这样的。 foreach($c as $row){ echo string_shorten($row['title']); } 我正在尝试使用一个 s
我正在尝试在 PHP 中进行重音字符替换,但得到的结果很奇怪,我的猜测是因为我使用的是 UTF-8 字符串,而 str_replace 无法正确处理多字节字符串。 $accents_search
$a = $_GET['a']; $d = array("æ", "ø", "å", "Æ", "Ø", "Å"); $e = array("æ", "ø", "å",
我有一个简单的 PHP 脚本,应该用反斜杠转义单引号和双引号。这是我的代码: $output = str_replace('"','\"',$input); $output = str_replace
我是一名优秀的程序员,十分优秀!