gpt4 book ai didi

php - 如何使用 html 标签对字符串进行 base64 编码和 base64 解码?

转载 作者:搜寻专家 更新时间:2023-10-31 21:06:00 26 4
gpt4 key购买 nike

我有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 网站返回空字符串:

if (isset($_GET['msg']) && !empty($_GET['msg'])){
$text = base64_decode($_GET['msg']);
echo $text;
}

But, $_GET['msg'] = RGFyxKtqdW1zIHZlaWtzbcSrZ2kgcGlldmllbm90cyE8L2JyPktvbWVudMSBcnMgdmVpa3NtxKtnaSBwaWV2aWVub3RzITwvYnI+S2xpZW50cyB2ZWlrc23Eq2dpIHBpZXZpZW5vdHMhPC9icj5GxIF6ZSBpciBwaWV2aWVub3RhISA8L2JyPg==

附言我尝试在没有 html 标签的情况下使用它,一切都很好。

最佳答案

问题与 base64 字母表不是 URL 安全的事实有关。在这种特殊情况下,您的 base64 编码字符串包含一个 +,它被解释为一个空格。

要解决这个问题,您可以:

  • 使用 base64 字母表的 URL 安全版本,即将 + 替换为 -,将 / 替换为 _,并修剪尾随的 = 填充,如 RFC4648 中所述. This answer包括此方法的代码示例。
  • 在base64编码之后对你的内容进行URL编码,把+变成%2B/变成%2F , 和 =%3D

这应该可以解决您的问题,但不用说,在不受信任的环境中,让用户能够将原始 HTML 注入(inject)您的网站会构成严重的安全风险。

关于php - 如何使用 html 标签对字符串进行 base64 编码和 base64 解码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32328400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com