我怎样才能 base64_encode 和 base64_decode 字符串与 html 标签?
How can I base64_encode and base64_decode string with html tags?
我有base64解码的问题
例如,我有这个代码:
else if($_POST['submit']==2){
$send = base64_encode($text_success);
wp_redirect( home_url('/sales-funnel/add-product?msg='.$send) ); exit;
}
我将编码后的字符串发送到页面,这样用户就不能简单地从 url 读取它。
$text_success 包含 html 代码,如果 $wpdb->query
不包含错误则生成:
`Darījums veiksmīgi pievienots!</br>Komentārs veiksmīgi pievienots!</br>Klients veiksmīgi pievienots!</br>Fāze ir pievienota! </br>`
在所有在线 base64_decode 中,它运行良好,但我的 WordPress 站点 return 在我尝试执行时为空字符串:
if (isset($_GET['msg']) && !empty($_GET['msg'])){
$text = base64_decode($_GET['msg']);
echo $text;
}
但是,$_GET['msg'] = RGFyxKtqdW1zIHZlaWtzbcSrZ2kgcGlldmllbm90cyE8L2JyPktvbWVudMSBcnMgdmVpa3NtxKtnaSBwaWV2aWVub3RzITwvYnI+S2xpZW50cyB2ZWlrc23Eq2dpIHBpZXZpZW5vdHMhPC9icj5GxIF6ZSBpciBwaWV2aWVub3RhISA8L2JyPg==
P.S。我尝试在没有 html 标签的情况下使用它,一切都很好。
问题与 base64 字母表不 URL 安全有关。在这种特殊情况下,您的 base64 编码字符串包含 +
,它被解释为 space.
要解决这个问题,您可以:
- 使用 base64 字母表的 URL 安全版本,即将
+
替换为 -
,将 /
替换为 _
,并修剪尾部=
填充,如 RFC4648. This answer 中所述,包含此方法的代码示例。
- URL-将你的内容进行base64编码后,将
+
变成%2B
,/
变成%2F
,=
变成%3D
.
这应该可以解决您的问题,但不用说,在不受信任的环境中,让用户能够将原始 HTML 注入您的网站会构成严重的安全风险。
我有base64解码的问题 例如,我有这个代码:
else if($_POST['submit']==2){
$send = base64_encode($text_success);
wp_redirect( home_url('/sales-funnel/add-product?msg='.$send) ); exit;
}
我将编码后的字符串发送到页面,这样用户就不能简单地从 url 读取它。
$text_success 包含 html 代码,如果 $wpdb->query
不包含错误则生成:
`Darījums veiksmīgi pievienots!</br>Komentārs veiksmīgi pievienots!</br>Klients veiksmīgi pievienots!</br>Fāze ir pievienota! </br>`
在所有在线 base64_decode 中,它运行良好,但我的 WordPress 站点 return 在我尝试执行时为空字符串:
if (isset($_GET['msg']) && !empty($_GET['msg'])){
$text = base64_decode($_GET['msg']);
echo $text;
}
但是,$_GET['msg'] = RGFyxKtqdW1zIHZlaWtzbcSrZ2kgcGlldmllbm90cyE8L2JyPktvbWVudMSBcnMgdmVpa3NtxKtnaSBwaWV2aWVub3RzITwvYnI+S2xpZW50cyB2ZWlrc23Eq2dpIHBpZXZpZW5vdHMhPC9icj5GxIF6ZSBpciBwaWV2aWVub3RhISA8L2JyPg==
P.S。我尝试在没有 html 标签的情况下使用它,一切都很好。
问题与 base64 字母表不 URL 安全有关。在这种特殊情况下,您的 base64 编码字符串包含 +
,它被解释为 space.
要解决这个问题,您可以:
- 使用 base64 字母表的 URL 安全版本,即将
+
替换为-
,将/
替换为_
,并修剪尾部=
填充,如 RFC4648. This answer 中所述,包含此方法的代码示例。 - URL-将你的内容进行base64编码后,将
+
变成%2B
,/
变成%2F
,=
变成%3D
.
这应该可以解决您的问题,但不用说,在不受信任的环境中,让用户能够将原始 HTML 注入您的网站会构成严重的安全风险。