• acceptcharset与Header P3P


    场景一:
    A网站全站均为UTF-8编码,B网站全站为GB2312编码。
    A网站提供一段JS代码供B网站调用,该代码会动态生成一个FORM表单,以收集提交上来的数据。
    B网站此时开始提交数据,但提交上来的中文均为乱码。
    现象的产生是由于二个网站编码不一致而导致的,一般情况下使二个网站的编码一致即可。
    如果无法统一编码该怎么办?

    FORM有一个accept-charset属性

    <form method=”post” action=”…” accept-charset=”utf-8″>

    </form>

    测试成功,但在IE下不成功,需要一个HACK来解决:
    在form的onsubmit事件触发时动态改变document的编码,即:
    onsubmit=”document.charset=’utf-8′;”

    场景二:
    A网站提供一个页面供其它网站进行Iframe调用,该页面使用了SESSION,并进行了SESSION判断。
    现象:
    B网站IFRAME了A网站的页面,总显示SESSION过期,但直接在浏览器中打开该页面却又是正常的。
    这是由于浏览器的安全性所致,SESSION依赖于COOKIE,A与B是二个完全不同的域,A网站没法去读取B网站下的COOKIE,所以 SESSION也就失效了。
    解决办法:
    A网站的页面在输出头上附加一个P3P属性,值为CP=CAO PSA OUR即可。
    如:

    Response.AddHeader(“P3P”, “CP=CAO PSA OUR”);
    if (Session[SESSIONKEY] == null)
    {
    //TODO:其它操作
    }

  • 相关阅读:
    网络流24题之汽车加油行驶问题
    「CodeChef
    「HNOI 2016」 序列
    「HNOI 2015」实验比较
    「JXOI 2018」 排序问题
    「HNOI 2014」 江南乐
    「HNOI 2015」亚瑟王
    「HNOI 2015」菜肴制作
    「HNOI 2015」落忆枫音
    蓝桥杯 方格分割
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400362.html
Copyright © 2020-2023  润新知