คุกกี้ถูกบล็อก / ไม่ได้บันทึกใน IFRAME ใน Internet Explorer


392

ฉันมีสองเว็บไซต์สมมติว่าพวกเขากำลังและexample.com anotherexample.netเมื่อวันที่ฉันมีanotherexample.net/page.html IFRAME SRC="http://example.com/someform.asp"นั่น IFRAME http://example.com/process.aspแสดงรูปแบบเพื่อให้ผู้ใช้กรอกข้อมูลและส่งไปยัง เมื่อฉันเปิดแบบฟอร์ม (" someform.asp") ในหน้าต่างเบราว์เซอร์ของตัวเองทั้งหมดทำงานได้ดี อย่างไรก็ตามเมื่อฉันโหลดsomeform.aspเป็น IFRAME ใน IE 6 หรือ IE 7 คุกกี้สำหรับ example.com จะไม่ถูกบันทึก ใน Firefox ปัญหานี้จะไม่ปรากฏขึ้น

สำหรับวัตถุประสงค์ในการทดสอบเราได้สร้างการติดตั้งที่คล้ายกันในhttp://newmoon.wz.cz/test/page.php

example.comใช้เซสชันที่อิงกับคุกกี้ (และไม่มีอะไรที่ฉันสามารถทำได้เกี่ยวกับเรื่องนั้น) ดังนั้นหากไม่มีคุกกี้process.aspจะไม่ดำเนินการ ฉันจะบังคับให้ IE บันทึกคุกกี้เหล่านั้นได้อย่างไร

ผลลัพธ์ของการรับส่งข้อมูล HTTP: ในการตอบสนอง GET /someform.asp จะมีส่วนหัว Set-Cookie ต่อเซสชันที่ถูกต้อง (เช่นSet-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY) แต่สำหรับ POST /process.asp คำขอไม่มีส่วนหัวคุกกี้เลย

Edit3: บาง AJAX + serverside สคริปต์เห็นได้ชัดคือความสามารถที่จะหลีกเลี่ยงปัญหา แต่ที่ดูมากเช่นข้อผิดพลาดรวมทั้งจะเปิดชุดใหม่ของช่องโหว่ ฉันไม่ต้องการให้แอปพลิเคชันของฉันใช้ช่องโหว่ข้อบกพร่อง + ความปลอดภัยเพียงเพราะง่าย

แก้ไข: นโยบาย P3P เป็นสาเหตุหลักคำอธิบายแบบเต็มด้านล่าง


ทางออกที่ดีแน่นอน .. ฉันพยายามสร้างนโยบายความเป็นส่วนตัว .. เพิ่มไปยังรูทบริบทของฉัน ... และในหน้า jsp ของฉันฉันกำลังตั้งค่าส่วนหัว .. ยังคงไม่สามารถกำจัดตาสีแดงนั้น .. คุณช่วยได้ไหม ฉันแก้ปัญหา ..
902490


@ makerofthings7: YW ฉันจะโยกย้ายไปยังไซต์ที่ไม่ใช่ชั่วคราว (sic!) และจะแนะนำการแก้ไขใน Security.se หน้านั้นเป็นแนวคิดที่ค่อนข้างแฮ็ก
Piskvor ออกจากอาคาร

2
อย่ากังวลที่จะพยายามทำให้ P3P ทำงานใน Windows 10 / Internet Explorer 11 ( msdn.microsoft.com/en-us/library/… ) P3P ไม่ทำงานเลยดังนั้นไม่ว่าคุณจะทำอะไรคุกกี้จะไม่ถูกจัดเก็บ พิสูจน์ได้ที่นี่เช่นกันenhie.com/test/cookie
puco

คำตอบ:


429

ฉันได้มันมาทำงาน แต่ทางออกมันซับซ้อนไปหน่อย

เกิดอะไรขึ้น

ตามที่เป็นอยู่ Internet Explorer ให้ความไว้วางใจในระดับต่ำกว่าไปยังหน้า IFRAME (IE เรียกเนื้อหา "บุคคลที่สาม" นี้) หากหน้าเว็บภายใน IFRAME ไม่มีนโยบายความเป็นส่วนตัวคุกกี้ของมันจะถูกบล็อก (ซึ่งระบุด้วยไอคอนรูปดวงตาในแถบสถานะเมื่อคุณคลิกที่หน้านั้นมันจะแสดงรายการ URL ที่ถูกบล็อก)

ตาชั่วร้าย
(ที่มา: piskvor.org )

ในกรณีนี้เมื่อคุกกี้ถูกบล็อกจะไม่มีการส่งตัวระบุเซสชันและสคริปต์เป้าหมายจะพ่นข้อผิดพลาด 'ไม่พบเซสชัน'

(ฉันได้ลองตั้งค่าตัวระบุเซสชันลงในแบบฟอร์มและโหลดจากตัวแปร POST สิ่งนี้น่าจะใช้ได้แต่ด้วยเหตุผลทางการเมืองฉันไม่สามารถทำเช่นนั้นได้)

มันเป็นไปได้ที่จะทำให้หน้าภายใน IFRAME เชื่อถือได้มากขึ้น: ถ้าหน้าภายในจะส่งหัว P3P นโยบายส่วนบุคคลที่เป็นที่ยอมรับของ IE คุกกี้จะได้รับการยอมรับ

วิธีแก้ปัญหา

สร้างนโยบาย p3p

เป็นจุดเริ่มต้นที่ดีคือW3C กวดวิชา ฉันได้อ่านไปแล้วดาวน์โหลดตัวแก้ไขนโยบายความเป็นส่วนตัวของ IBMแล้วฉันก็สร้างนโยบายความเป็นส่วนตัวขึ้นที่นั่นและตั้งชื่อเพื่ออ้างอิงโดย (นี่คือpolicy1)

หมายเหตุ : ณ จุดนี้คุณจำเป็นต้องค้นหาว่าไซต์ของคุณมีนโยบายความเป็นส่วนตัวหรือไม่และสร้างขึ้นไม่ว่าจะเป็นการรวบรวมข้อมูลผู้ใช้ข้อมูลประเภทใดมันทำกับใครใครมีสิทธิ์เข้าถึง ฯลฯ คุณจำเป็นต้องค้นหาข้อมูลนี้และคิดเกี่ยวกับมัน เพียงตบแท็กเข้าด้วยกันบางแท็กจะไม่ตัดออก ขั้นตอนนี้ไม่สามารถทำได้อย่างหมดจดในซอฟต์แวร์และอาจเป็นเรื่องทางการเมืองสูง (เช่น "เราควรขายสถิติการคลิกของเราหรือไม่")

(เช่น "ไซต์ดำเนินการโดย ACME Ltd. ใช้ตัวระบุต่อเซสชันแบบไม่ระบุชื่อสำหรับการดำเนินการรวบรวมข้อมูลผู้ใช้เฉพาะเมื่อได้รับอนุญาตอย่างชัดเจนและเพื่อวัตถุประสงค์ต่อไปนี้เท่านั้นข้อมูลจะถูกเก็บไว้ตราบเท่าที่จำเป็นเท่านั้น บริษัท ของเรา สามารถเข้าถึงได้ ฯลฯ ฯลฯ ")

(เมื่อแก้ไขด้วยเครื่องมือนี้เป็นไปได้ที่จะดูข้อผิดพลาด / การละเว้นในนโยบายนอกจากนี้ยังมีประโยชน์มากคือแท็บ "นโยบาย HTML": ที่ด้านล่างจะมี "การประเมินนโยบาย" - ตรวจสอบอย่างรวดเร็วว่านโยบายจะถูกบล็อกหรือไม่ โดยการตั้งค่าเริ่มต้นของ IE)

บรรณาธิการส่งออกไปยังไฟล์. mp3p ซึ่งเป็นการนำเสนอ XML ของนโยบายข้างต้น นอกจากนี้ยังสามารถส่งออก "รุ่นกะทัดรัด" ของนโยบายนี้

เชื่อมโยงไปยังนโยบาย

จากนั้นhttp://example.com/w3c/p3p.xmlจำเป็นต้องใช้ไฟล์อ้างอิงนโยบาย ( ) (ดัชนีนโยบายความเป็นส่วนตัวที่ไซต์ใช้):

<META>
  <POLICY-REFERENCES>
    <POLICY-REF about="/w3c/example-com.p3p#policy1">
      <INCLUDE>/</INCLUDE>
      <COOKIE-INCLUDE/>
    </POLICY-REF>
  </POLICY-REFERENCES>
</META>

<INCLUDE>แสดง URI ของทั้งหมดที่จะใช้นโยบายนี้ (ในกรณีของฉันเว็บไซต์ทั้งหมด) ไฟล์นโยบายที่ฉันส่งออกจากตัวแก้ไขถูกอัปโหลดไปยังhttp://example.com/w3c/example-com.p3p

ส่งส่วนหัวขนาดกะทัดรัดพร้อมการตอบกลับ

ฉันได้ตั้งค่าเว็บเซิร์ฟเวอร์ที่ example.com เพื่อส่งส่วนหัวขนาดกะทัดรัดพร้อมการตอบกลับดังนี้:

HTTP/1.1 200 OK 
P3P: policyref="/w3c/p3p.xml", CP="IDC DSP COR IVAi IVDi OUR TST"
// ... other headers and content

policyrefเป็น URI ที่เกี่ยวข้องกับไฟล์อ้างอิงนโยบาย (ซึ่งจะอ้างอิงนโยบายความเป็นส่วนตัว) CPเป็นการนำเสนอนโยบายแบบย่อ โปรดทราบว่าการรวมกันของส่วนหัว P3P ในตัวอย่างอาจไม่สามารถใช้ได้ในเว็บไซต์ของคุณ ส่วนหัว P3P ของคุณต้องแสดงนโยบายความเป็นส่วนตัวของคุณอย่างแท้จริง!

กำไร!

ในการกำหนดค่านี้ Evil Eye ไม่ปรากฏคุกกี้จะถูกบันทึกแม้ใน IFRAME และแอปพลิเคชันทำงาน

แก้ไข: จะไม่ทำอะไรนอกจากว่าคุณชอบที่จะปกป้องจากการถูกฟ้องร้อง

มีหลายคนแนะนำว่า "เพียงตบแท็กบางส่วนลงในส่วนหัว P3P ของคุณจนกว่าตาชั่วร้ายจะยอมแพ้"

แท็กไม่เพียง แต่เป็นบิตเท่านั้น แต่ยังมีความหมายในโลกแห่งความเป็นจริงและการใช้งานนั้นให้ความรับผิดชอบในโลกแห่งความจริง !

ตัวอย่างเช่นการแกล้งทำเป็นว่าคุณไม่เคยรวบรวมข้อมูลผู้ใช้อาจทำให้เบราว์เซอร์มีความสุข แต่ถ้าคุณรวบรวมข้อมูลผู้ใช้จริง P3P จะขัดแย้งกับความเป็นจริง ธรรมดาและเรียบง่ายคุณตั้งใจโกหกผู้ใช้ของคุณและนั่นอาจเป็นพฤติกรรมอาชญากรรมในบางประเทศ เช่นเดียวกับ "ไปเข้าคุกอย่าเก็บเงิน 200 ดอลลาร์"

ตัวอย่างเล็ก ๆ น้อย ๆ ( ดู p3pwriter สำหรับชุดเต็มของแท็ก ):

  • น้อย : "เว็บไซต์ไม่ได้รวบรวมข้อมูลที่ระบุ" (ทันทีที่มีการปรับแต่งการเข้าสู่ระบบหรือการรวบรวมข้อมูลใด ๆ (***** Analytics ทุกคน?) คุณต้องรับทราบใน P3P ของคุณ)
  • STP : ข้อมูลจะถูกเก็บไว้เพื่อตอบสนองวัตถุประสงค์ที่ระบุไว้ ข้อมูลนี้ต้องถูกยกเลิกในเวลาเร็วที่สุดเท่าที่จะเป็นไปได้ ไซต์ต้องมีนโยบายการเก็บข้อมูลที่สร้างตารางเวลาทำลาย นโยบายการเก็บรักษาจะต้องรวมอยู่ในหรือเชื่อมโยงจากนโยบายความเป็นส่วนตัวที่มนุษย์สามารถอ่านได้ของเว็บไซต์ "(ดังนั้นหากคุณส่งSTPแต่ไม่มีนโยบายการเก็บข้อมูลคุณอาจกระทำการฉ้อโกง

ฉันไม่ได้เป็นทนายความ แต่ฉันไม่เต็มใจที่จะไปศาลเพื่อดูว่าส่วนหัว P3P ถูกจริงๆผลผูกพันตามกฎหมายหรือถ้าคุณสามารถสัญญาอะไรของผู้ใช้จริงโดยไม่เต็มใจที่จะให้เกียรติสัญญาของคุณ


ฉันเสร็จสมบูรณ์ 95% แต่ส่วนหัวของฉันพูดเพียง: P3P: CP = ".... " และไม่ได้รวมลิงก์ policyref ซึ่งทำให้ใช้งานได้ใน IE7 แต่ไม่ใช่ IE6 ... ทำงานได้ดีในตอนนี้ ขอบคุณ!
AndreasKnudsen

4
ลิงก์ไปยังเอดิเตอร์ IBM ไม่ทำงานอีกต่อไป ผ่านทางเครื่อง Wayback ฉันสามารถค้นหาลิงค์ที่ใช้งานได้นี้: www6.software.ibm.com/sdfdl/1v2/regs2/awadmin/p3peditor/Xa.2/ …
ripper234

34
ข่าวบางเรื่องในหัวข้อนี้: -IBM editor สามารถพบได้ที่: softpedia.com/get/Security/Security-Related/… -P3P มาตรฐานดูเหมือนว่าจะเป็น 'ตาย' บริษัท ใหญ่ ๆ อย่าง google และ facebook ใช้ส่วนหัว P3P ที่ไม่ถูกต้องเพื่อเลี่ยงผ่านการรักษาความปลอดภัย IE ดูโพสต์เหล่านี้: cylab.cmu.edu/research/techreports/2010/tr_cylab10014.html zdnet.com/blog/facebook/... techpolicy.com/...
ดาวิ Icardi

7
ข้อมูลอื่นที่สามารถช่วยคนที่มีปัญหาคล้ายกัน: จากการทดสอบของฉันหากโดเมนอยู่ในโซนความปลอดภัยที่แตกต่างกัน (เช่นบุคคลที่หนึ่งคืออินเทอร์เน็ตและบุคคลที่สามเป็นอินทราเน็ต) ไม่สามารถยอมรับคุกกี้ของบุคคลที่สามได้เช่นกัน การกำหนดค่า คุกกี้ถูกบล็อกอยู่เสมอ
Davide Icardi

1
โปรดทราบว่าคำว่า 'บุคคลที่สาม' นั้นไม่ชัดเจนอย่างที่ใคร ๆ คิด หาก iframe มีเนื้อหาของบุคคลที่สามที่เกี่ยวข้องกับเว็บไซต์ที่แนบมาและมีนโยบายความเป็นส่วนตัวที่ถูกต้องและจะเปลี่ยนเส้นทางไปยังมุมมองใน iframe ที่มาจากเว็บไซต์หลักดังนั้นหากมุมมองนั้นมีนโยบายความเป็นส่วนตัวที่ถูกต้อง IE จะไม่ ไว้วางใจคุกกี้ แม้ว่ามุมมองนั้นมาจากไซต์เดียวกันกับมุมมองหนึ่งที่มี iframe
ค่าโดยสาร

168

ฉันใช้เวลาส่วนใหญ่ไปกับการมองหาสิ่ง P3P นี้และฉันรู้สึกว่าต้องแบ่งปันสิ่งที่ฉันค้นพบ

ฉันสังเกตเห็นว่าแนวคิด P3P นั้นล้าสมัยมากและดูเหมือนว่าจะถูกใช้ / บังคับโดย Internet Explorer (IE) เท่านั้น

คำอธิบายที่ง่ายที่สุดคือ: IE ต้องการให้คุณกำหนดส่วนหัว P3P หากคุณใช้คุกกี้

นี่เป็นความคิดที่ดีและโชคดีที่เวลาส่วนใหญ่ที่ไม่มีส่วนหัวนี้จะไม่ทำให้เกิดปัญหาใด ๆ (อ่านคำเตือนของเบราว์เซอร์) นอกจากว่าเว็บไซต์ / เว็บแอปพลิเคชั่นของคุณจะถูกโหลดเข้าไปในเว็บไซต์อื่นโดยใช้ (i) Frame นี่คือที่ IE กลายเป็นความเจ็บปวดอย่างมากใน *** มันจะไม่อนุญาตให้คุณตั้งค่าคุกกี้เว้นแต่ว่าจะตั้งค่าส่วนหัว P3P

เมื่อรู้สิ่งนี้ฉันต้องการค้นหาคำตอบของคำถามสองข้อต่อไปนี้:

  1. ใครสน? กล่าวอีกนัยหนึ่งฉันสามารถฟ้องได้ไหมถ้าฉันใส่คำว่า "มันฝรั่ง" ไว้ในส่วนหัว?
  2. บริษัท อื่นทำอะไร

สิ่งที่ฉันค้นพบคือ:

  1. ไม่มีใครสนใจ. ฉันไม่พบเอกสารฉบับเดียวที่แนะนำเทคโนโลยีนี้ว่ามีน้ำหนักตามกฎหมาย ในระหว่างการวิจัยของฉันฉันไม่พบประเทศใดประเทศหนึ่งทั่วโลกที่ใช้กฎหมายที่ป้องกันไม่ให้คุณใส่คำว่า "Potato" ในส่วนหัว P3P
  2. ทั้ง Google และ Facebook ใส่ลิงค์ในฟิลด์ส่วนหัว P3P ของพวกเขาอ้างถึงหน้าอธิบายว่าทำไมพวกเขาไม่มีส่วนหัว P3P

แนวคิดนี้เกิดขึ้นในปี 2545 และทำให้ฉันงุนงงว่าแนวคิดที่ล้าสมัยและไม่ได้ใช้งานอย่างถูกกฎหมายยังคงถูกบังคับต่อนักพัฒนาซอฟต์แวร์ใน IE หากส่วนหัวนี้ไม่มี ramifications ทางกฎหมายใด ๆ ส่วนหัวนี้ควรถูกละเว้น (หรือมิฉะนั้นให้สร้างคำเตือนหรือการแจ้งเตือนในคอนโซล) ไม่บังคับใช้! ตอนนี้ฉันถูกบังคับให้ใส่บรรทัดในรหัสของฉัน (และส่งส่วนหัวไปยังลูกค้า) ที่ไม่ทำอะไรเลยอย่างแน่นอน

ในระยะสั้น - เพื่อให้ IE มีความสุข - เพิ่มบรรทัดต่อไปนี้ในโค้ด PHP ของคุณ (ภาษาอื่นควรมีลักษณะคล้ายกัน)

header('P3P: CP="Potato"');

แก้ไขปัญหาแล้วและ IE ก็พอใจกับมันฝรั่งนี้


6
แท้จริงแล้วปัญหามีการเปลี่ยนแปลงอย่างมีนัยสำคัญตั้งแต่ปี 2008 เมื่อมีการโพสต์สิ่งนี้ เว็บย้ายไปแล้วและฉันทามติเกี่ยวกับ P3P ได้ตัดสินที่ "ไม่มีใครใส่ใจอีกต่อไป" ดีที่จะรู้ว่า IE ทำอะไรกับอินพุตที่ไม่ถูกต้องในกรณีนี้
Piskvor ออกจากอาคาร

19
โอ้มนุษย์นี่เป็นหนึ่งในอัญมณีที่นักสำรวจทางอินเทอร์เน็ตซ่อนอยู่! HttpContext.Current.Response.AddHeader ("p3p", "CP = \" Internet Explorer ถูกโปรแกรมโดย Idiots \ ""); อันนั้นใช้ได้สำหรับฉัน!
Michiel Cornille

6
@ วิสัยทัศน์อย่าตำหนินักพัฒนานี่เป็นปัญหาที่เกี่ยวข้องกับนักกฎหมายและผู้บริหารใช่ไหม ฉันคาดเดาว่านักพัฒนาส่วนใหญ่ไม่ตระหนักว่าคุณลักษณะจะส่งผลให้มันฝรั่งเช่นโซลูชั่น :-)
KajMagnus

5
สำหรับ ASP.Net คุณสามารถเพิ่มสิ่งนี้ลงในเว็บการตั้งค่าของคุณ: '<system.webServer> <handlers> <httpProtocol> <customHeaders> <add name = "p3p" value = "CP = & quot; Internet Explorer ต้องการสิ่งนี้เพื่อ ตั้งค่าคุกกี้บุคคลที่สาม & quot; " /> </customHeaders> </httpProtocol> </handlers> </system.webServer> '
Rick Kierner

1
โอ้นี่ต้องสูงขึ้น! ฉันใช้เวลาหลายชั่วโมงเพื่อให้คุกกี้ทำงานใน iframe ของ IE 11 ลองใช้ชุดค่าผสม P3P ทุกประเภทและรับผลลัพธ์ที่หลากหลายขึ้นอยู่กับประเภท / การหมดอายุของคุกกี้ ในที่สุดการใส่PotatoP3P ของฉันก็แก้ไขได้ ฮ่าฮ่า!
dtbaker

55

ฉันสามารถทำให้ตาชั่วร้ายหายไปโดยเพียงแค่เพิ่มส่วนหัวเล็ก ๆ นี้ในเว็บไซต์ใน IFrame (โซลูชัน PHP):

header('P3P: CP="NOI ADM DEV COM NAV OUR STP"');

อย่าลืมกด ctrl + F5เพื่อโหลดไซต์ของคุณอีกครั้งหรือ Explorer อาจยังคงแสดงความชั่วร้ายแม้ว่ามันจะทำงานได้ดีก็ตาม นี่อาจเป็นเหตุผลหลักที่ทำให้ฉันมีปัญหามากมายในการทำงาน

ไม่มีไฟล์นโยบายใด ๆ ที่จำเป็น

แก้ไข: ฉันพบรายการบล็อกที่ดีที่อธิบายถึงปัญหาเกี่ยวกับคุกกี้ใน IFrames นอกจากนี้ยังมีการแก้ไขอย่างรวดเร็วในรหัส C #: เฟรม, หน้า ASPX และคุกกี้ที่ถูกปฏิเสธ


10
IANAL แต่นโยบาย P3P ดูเหมือนจะมีผลผูกพันตามกฎหมาย คุณทราบหรือไม่ว่าคุณสัญญากับผู้ใช้ที่นี่หรือคุณเพียงแค่ผสมแท็กจนกว่า EvilEye จะหายไป? ฉันคิดว่าการแคชของเบราว์เซอร์จะไม่เป็นปัญหาที่ใหญ่ที่สุดของคุณสำหรับสิ่งเหล่านี้: " NOI : เว็บไซต์ไม่ได้รวบรวมข้อมูลที่ระบุไว้ STP : ข้อมูลถูกเก็บรักษาไว้เพื่อให้ตรงตามวัตถุประสงค์ที่ระบุไว้ มีนโยบายการเก็บรักษาที่กำหนดตารางเวลาการทำลายนโยบายการเก็บข้อมูลจะต้องรวมอยู่ในหรือเชื่อมโยงจากนโยบายความเป็นส่วนตัวที่คนอ่านได้ของเว็บไซต์ "
Piskvor ออกจากอาคาร

28
ฉันต้องยอมรับว่าฉันไม่สนใจจริงๆว่ามันแปลว่าอะไรฉันแค่ต้องการให้มันทำงานใน Explorer ไซต์ดังกล่าวเป็นไซต์ที่ไม่เปิดเผยต่อสาธารณะซึ่งหนึ่งในนั้นใช้คุกกี้เพื่อ 'จดจำ' ว่ารูปแบบใดที่จะแสดงไซต์นั้นดังนั้นใช่ฉันเพิ่งผสมแท็กจนกว่าตาชั่วร้ายจะหายไป
Helo

พบรายการบล็อกที่ดีที่อธิบายปัญหาได้ที่นี่: aspnetresources.com/blog/frames_webforms_and_rejected_cookies
Helo

6
การไม่เกี่ยวข้องที่เพิ่มขึ้นของ P3P cylab.cmu.edu/files/pdfs/tech_reports/CMUCyLab10014.pdfหากมันมีผลผูกพันทางกฎหมายดังนั้นจะมีการฟ้องร้องดำเนินคดีก่อน มันดูด้วยความนับถืออย่างสูงที่ทุกคน แต่หนึ่งในคู่แข่งของฉันแม้กระทั่งการโพสต์ครั้งแรก พวกเขาต้องคิดว่าหากลูกค้าของพวกเขาไม่สามารถออกจากการตั้งค่า IE บนสื่อกลางพวกเขาไม่คุ้มค่ากับความพยายาม ยอดขายที่สูญเสียไปในเว็บไซต์เดียวจะต้องค่อนข้างสูงหากคุกกี้ไม่ทำงานรถเข็นจะตายหากไม่มีพวกเขา
Fiasco Labs

3
คำตอบนี้CP="This_is_not_a_privacy_policy"แนะนำให้ใช้หัวหุ่นเหมือน ทำที่ดูเหมือนน้อยผลผูกพันตามกฎหมายผมคิดว่า (ตั้งแต่เช่น NOI และ STP และไม่มีอะไรเหมือนที่ทุกกล่าวถึง) และเห็นได้ชัดทำให้ IE มีความสุข :-)
KajMagnus

21

สิ่งนี้ถูกฝังอยู่ในความคิดเห็นของคำตอบอื่น ๆ แต่ฉันเกือบจะพลาดไปดังนั้นดูเหมือนว่ามันสมควรได้รับคำตอบของมันเอง

ในการตรวจสอบ: เพื่อให้ IE ยอมรับคุกกี้ของบุคคลที่สามคุณต้องแสดงไฟล์ของคุณด้วยส่วนหัว http เรียกว่า p3p ในรูปแบบ:

CP="my compact p3p policy"

แต่ p3p นั้นค่อนข้างตายตัวเหมือนมาตรฐานในตอนนี้และคุณสามารถทำให้ IE ทำงานได้โดยไม่ต้องเสียเวลาและทรัพยากรทางกฎหมายในการสร้างนโยบาย p3p จริง เนื่องจากถ้าส่วนหัวนโยบาย p3p ขนาดกะทัดรัดของคุณไม่ถูกต้อง IE จะถือว่าเป็นนโยบายที่ดีและยอมรับคุกกี้ของบุคคลที่สาม ดังนั้นคุณสามารถใช้ส่วนหัว p3p เช่นนี้

CP="This site does not have a p3p policy."

คุณสามารถเลือกที่จะรวมลิงค์ไปยังหน้าที่อธิบายว่าทำไมคุณถึงไม่มีนโยบาย p3p เช่นเดียวกับ Google และ Facebook (ชี้ไปที่: https://support.google.com/accounts/answer/151657และที่นี่: https : //www.facebook.com/help/327993273962160/ )

ท้ายที่สุดสิ่งสำคัญคือต้องทราบว่าไฟล์ทั้งหมดที่ให้บริการจากเว็บไซต์บุคคลที่สามจำเป็นต้องมีส่วนหัวของ p3p ไม่ใช่เฉพาะที่ตั้งค่าคุกกี้ดังนั้นคุณอาจไม่สามารถทำได้ใน PHP, asp.net และอื่น ๆ รหัส. คุณน่าจะดีกว่าการตั้งค่าในระดับเว็บเซิร์ฟเวอร์ (เช่นใน IIS หรือ Apache)


20

ฉันมีปัญหานี้เช่นกันฉันคิดว่าฉันโพสต์รหัสที่ฉันใช้ในโครงการ MVC2 ของฉัน ระวังเมื่ออยู่ในวงจรชีวิตของเพจที่คุณเพิ่มไว้ในส่วนหัวหรือคุณจะได้รับ HttpException " เซิร์ฟเวอร์ไม่สามารถผนวกส่วนหัวหลังจากที่ส่งส่วนหัว HTTPแล้ว" ฉันใช้ ActionFilterAttribute ที่กำหนดเองในวิธีการ OnActionExecuting (เรียกว่าก่อนที่จะมีการดำเนินการ)

/// <summary>
/// Privacy Preferences Project (P3P) serve a compact policy (a "p3p" HTTP header) for all requests
/// P3P provides a standard way for Web sites to communicate about their practices around the collection, 
/// use, and distribution of personal information. It's a machine-readable privacy policy that can be 
/// automatically fetched and viewed by users, and it can be tailored to fit your company's specific policies.
/// </summary>
/// <remarks>
/// More info http://www.oreillynet.com/lpt/a/1554
/// </remarks>
public class P3PAttribute : ActionFilterAttribute
{
    /// <summary>
    /// On Action Executing add a compact policy "p3p" HTTP header
    /// </summary>
    /// <param name="filterContext"></param>
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpContext.Current.Response.AddHeader("p3p","CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");

        base.OnActionExecuting(filterContext);
    }
}

ตัวอย่างการใช้:

[P3P]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewData["Message"] = "Welcome!";

        return View();
    }

    public ActionResult About()
    {
        return View();
    }
}

14

นี่เป็นหัวข้อที่ยอดเยี่ยมเกี่ยวกับปัญหานี้ แต่ฉันพบว่ารายละเอียดที่สำคัญอย่างหนึ่ง (ซึ่งจำเป็นอย่างน้อยในกรณีของฉัน) ที่ไม่ได้โพสต์ที่นี่หรือที่อื่น (ฉันขอโทษถ้าฉันเพิ่งพลาด) นั่นคือสาย P3P ส่งผ่านในส่วนหัวของไฟล์EVERY ที่ส่งจากเซิร์ฟเวอร์บุคคลที่สามแม้ไฟล์ที่ไม่ได้ตั้งค่าหรือใช้คุกกี้เช่นไฟล์ Javascript หรือรูปภาพ มิฉะนั้นคุกกี้จะถูกบล็อก ฉันมีเพิ่มเติมเกี่ยวกับเรื่องนี้ในโพสต์ที่นี่: http://posheika.net/?p=110


5

ใครก็ตามที่มีปัญหานี้ใน node.js

จากนั้นเพิ่มโมดูล p3p นี้และเปิดใช้งานโมดูลนี้ที่มิดเดิลแวร์

npm install p3p

ฉันใช้ express ดังนั้นฉันเพิ่มใน app.js

ขั้นแรกต้องการโมดูลนั้นใน app.js

var express = require('express');
var app = express();
var p3p = require('p3p');

จากนั้นใช้เป็นตัวกลาง

app.use(p3p(p3p.recommended));

มันจะเพิ่มส่วนหัว p3p ที่วัตถุความละเอียด ไม่จำเป็นต้องทำสิ่งพิเศษใด ๆ

คุณจะได้รับข้อมูลเพิ่มเติมได้ที่:

https://github.com/troygoode/node-p3p


5

หากใครกำลังมองหาสาย Apache; เราใช้อันนี้

ส่วนหัวชุด P3P "CP = \" ขอบคุณ IE8 \ ""

มันไม่สำคัญว่าเราจะตั้งค่า CP ไว้ที่ใดตราบใดที่มีส่วนหัว P3P


4

สิ่งหนึ่งที่เป็นไปได้คือการเพิ่มโดเมนไปยังไซต์ที่อนุญาตในเครื่องมือ -> ตัวเลือกอินเทอร์เน็ต -> ความเป็นส่วนตัว -> ไซต์: somedomain.com -> อนุญาต -> ตกลง


23
ใช่ถ้าคุณสนใจว่ามันทำงานบนคอมพิวเตอร์ของคุณ ไม่สามารถนำเสนอสิ่งนี้กับผู้เข้าชมทุกคนได้
Piskvor ออกจากอาคารเมื่อ

3

โพสต์นี้ให้ความเห็นเกี่ยวกับ P3P และทางลัดที่ช่วยลดปัญหากับ IE7 และ IE8


1
ในการอ้างถึงบทความ: "โดยทั่วไปจะกล่าวว่า" เราไม่ได้รวบรวมข้อมูลส่วนบุคคลของคุณ "" - ขอให้โชคดี ฉันได้เห็นไซต์ศูนย์ที่ปฏิบัติตามโทเค็นที่กำหนดไว้ในนโยบายนั้นจริง ๆ แล้ว (ไม่ได้รวบรวมข้อมูลใด ๆเลยแม้แต่ข้อมูลทางสถิติที่ไม่ระบุชื่อ - บันทึกการเข้าถึงเซิร์ฟเวอร์ใครก็ตาม?) นโยบายอื่นที่นำเสนอนั้นค่อนข้างยากที่จะประสบความสำเร็จ (คุณมีการวิเคราะห์เว็บใด ๆ หรือไม่คุณเพิ่งทำลายนโยบาย P3P ของคุณ) ดังนั้นบทความสามารถสรุปได้ว่า "เพียงแค่โจ๋งครึ่มไม่มีใครใส่ใจอยู่แล้ว" บทความที่มีประโยชน์ที่สุดบนอินเทอร์เน็ตทั้งหมดแน่นอน
Piskvor ออกจากอาคาร

หากต้องการอ้างถึงส่วนอื่นของบทความ: "มีข้อมูลเกี่ยวกับ P3P นโยบายขนาดกะทัดรัดและข้อกำหนดของ IE7 น้อยมากที่น่าประหลาดใจเล็ก ๆ น้อย ๆ และข้อกำหนดของ IE7 - และ IE7 ไม่มีประโยชน์ในการแก้จุดบกพร่องที่เป็นประโยชน์อย่างเช่นคุกกี้ของคุณถูกบล็อก" สิ่งนี้ดูเหมือนจะเป็นจริงโดยสมบูรณ์! หลังจากใช้เวลาส่วนใหญ่พยายามค้นหาว่าทำไม IE7 / 8 ทำงานแตกต่างจากเบราว์เซอร์อื่น ๆ ฉันดีใจมากที่พบโพสต์นี้ อาจถึงเวลาที่จะรู้ว่า P3P เป็นสเป็คที่ตายแล้วและคนส่วนใหญ่ค่อนข้างจะแค่หลีกเลี่ยงมัน โพสต์นี้น่าจะเป็นประโยชน์มากที่สุดในเรื่อง
Henrik Aasted Sørensen

"มีข้อมูลฟรีบนอินเทอร์เน็ตที่น่าแปลกใจเล็กน้อย" - ซึ่งอาจเป็นจริงในปี 2550 (เมื่อมีการเขียน) แต่มีข้อมูลมากมายบนอินเทอร์เน็ตในขณะนี้แม้กระทั่งเครื่องมือฟรีที่ช่วยคุณสร้างนโยบาย P3P ตาม สถานการณ์ที่เฉพาะเจาะจงของคุณฉันไม่ได้ปกป้อง P3P แต่พูดว่า "เอ๊ะสกรูแค่ทำให้หายไป" อาจมีผลกระทบที่มีราคาแพง (เนื่องจากคุณกำลังอ้างสิทธิ์ที่ชัดเจนเกี่ยวกับเว็บไซต์ของคุณ) แม้ว่า P3P จะมีผลผูกพันทางกฎหมายแล้วก็ตาม ' ยังไม่ได้รับการทดสอบ (IIRC) แต่ฉันไม่ต้องการที่จะได้รับการพิจารณาคดี
Piskvor ออกจากอาคาร

1
@Piskvor - กรุณาโพสต์เครื่องมือ P3P ฟรี ทุกสิ่งที่ฉันพยายามจะไปซื้อมาจากลิงค์ฟาร์มและการค้นหาปลอม IBM ดึงเครื่องมือฟรีของพวกเขา การสนับสนุน P3P ดูเหมือนว่าจะเป็นหญ้าตายในฤดูแล้งในปี 2012
Fiasco Labs

2
พบเครื่องมือแก้ไข p3p ของ IBM Alphaworks ได้ที่นี่ที่ softpedia: softpedia.com/get/Security/Security-Related/…
Fiasco Labs

3

ทางออกหนึ่งที่ฉันไม่ได้กล่าวถึงที่นี่คือการใช้ที่เก็บเซสชันแทนคุกกี้ แน่นอนว่านี่อาจไม่เหมาะกับความต้องการของทุกคน แต่ในบางกรณีการแก้ไขทำได้ง่าย


1
จุดดี. โปรดทราบว่าในขณะที่คำถามนี้ถูกโพสต์การสนับสนุนสำหรับการจัดเก็บข้อมูลเซสชั่นไม่มีอยู่โดยเฉพาะอย่างยิ่งใน IE แต่เวลาพวกเขากำลังเปลี่ยนแปลง;)
Piskvor ออกจากอาคารเมื่อ

3

ฉันกำลังตรวจสอบปัญหานี้เกี่ยวกับการลงชื่อออกผ่าน Azure Access Control Services และไม่สามารถเชื่อมต่อส่วนหัวและส่วนท้ายของสิ่งใดก็ได้

จากนั้นจึงข้ามโพสต์นี้https://blogs.msdn.microsoft.com/ieinternals/2011/03/10/beware-cookie-sharing-in-cross-zone-scenarios/

กล่าวโดยย่อคือ IE ไม่แชร์คุกกี้ข้ามโซน (เช่นอินเทอร์เน็ตกับเว็บไซต์ที่เชื่อถือได้)

ดังนั้นหากเป้าหมาย IFrame และหน้า html ของคุณอยู่ใน P3P ของโซนที่ต่างกันจะไม่ช่วยอะไรเลย


ฉันประหลาดใจที่นี่ยังมีความเกี่ยวข้องในปี 2016 :)
Piskvor ออกจากอาคารเมื่อ

1
สถานะของ P3P ใน IE ได้รับการบันทึกไว้ที่นี่: msdn.microsoft.com/en-us/library/mt146424(v=vs.85).aspxอนาคตดูสดใส :)
Frode Nilsen

2

มีปัญหาที่คล้ายกันไปตรวจสอบวิธีการสร้างนโยบาย P3P เช้านี้นี่คือโพสต์ของฉันเกี่ยวกับวิธีการสร้างนโยบายของคุณเองและใช้ในเว็บไซต์ :) http://everydayopenslikeaflower.blogspot.com/2009/08/ วิธีการสร้าง-P3P นโยบายและ implement.html


2

ฉันได้ใช้นโยบาย P3P แบบเต็มก่อนหน้านี้ แต่ไม่ต้องการให้เกิดความยุ่งยากอีกครั้งสำหรับโครงการใหม่ที่ฉันกำลังทำงานอยู่ ฉันพบว่าลิงก์นี้มีประโยชน์สำหรับการแก้ปัญหาอย่างง่ายเพียง แต่ต้องระบุนโยบาย P3P ขนาดเล็กที่สุดของ "CAO PSA OUR":

http://blog.sweetxml.org/2007/10/minimal-p3p-compact-policy-suggestion.html

บทความราคาลิงค์ (ตอนนี้เสีย) ลิงก์ไปยังบทความ Microsoft kb นโยบายทำเพื่อฉัน!


1

คุณยังสามารถรวมไฟล์ p3p.xml และ policy.xml เช่น:

/home/ubuntu/sites/shared/w3c/p3p.xml

<META xmlns="http://www.w3.org/2002/01/P3Pv1">
  <POLICY-REFERENCES>
    <POLICY-REF about="#policy1">
      <INCLUDE>/</INCLUDE>
      <COOKIE-INCLUDE/>
    </POLICY-REF>
  </POLICY-REFERENCES>
  <POLICIES>
    <POLICY discuri="" name="policy1">
      <ENTITY>
        <DATA-GROUP>
          <DATA ref="#business.name"></DATA> 
          <DATA ref="#business.contact-info.online.email"></DATA> 
        </DATA-GROUP>
      </ENTITY>
      <ACCESS>
        <nonident/>
      </ACCESS>
      <!-- if the site has a dispute resolution procedure that it follows, a DISPUTES-GROUP should be included here -->
      <STATEMENT>
        <PURPOSE>
          <current/>
          <admin/>
          <develop/>
        </PURPOSE>
        <RECIPIENT>
          <ours/>
        </RECIPIENT>
        <RETENTION>
          <indefinitely/>
        </RETENTION>
        <DATA-GROUP>
          <DATA ref="#dynamic.clickstream"/>
          <DATA ref="#dynamic.http"/>
        </DATA-GROUP>
      </STATEMENT>
    </POLICY>
  </POLICIES>
</META>

ฉันพบวิธีที่ง่ายที่สุดในการเพิ่มส่วนหัวคือ proxy ผ่าน Apache และใช้ mod_headers เช่นนี้:

<VirtualHost *:80>
  ServerName mydomain.com

  DocumentRoot /home/ubuntu/sites/shared/w3c/

  ProxyRequests off
  ProxyPass /w3c/ !
  ProxyPass / http://127.0.0.1:8080/
  ProxyPassReverse / http://127.0.0.1:8080/
  ProxyPreserveHost on

  Header add p3p 'P3P:policyref="/w3c/p3p.xml", CP="NID DSP ALL COR"'
</VirtualHost>

ดังนั้นเราจึงส่งคำขอทั้งหมดยกเว้นคำขอไปยัง /w3c/p3p.xml ไปยังแอปพลิเคชันเซิร์ฟเวอร์ของเรา

คุณสามารถทดสอบทั้งหมดได้ด้วยเครื่องมือตรวจสอบ W3C


สิ่งนี้ส่งส่วนหัวที่มีการร้องขอ 304 หรือไม่ IE บางเวอร์ชันจะลบคุกกี้จริง ๆ ถ้าคุณส่งส่วนหัว P3P ที่มี 304
Joshua

ขออภัยฉันไม่ทราบเนื่องจากฉันไม่ได้ทำงานกับรหัสนี้อีกต่อไป หากเป็นปัญหาคุณอาจบังคับให้รหัสสถานะใน Apache เป็น 200 ได้
Kris

1

หากคุณเป็นเจ้าของโดเมนที่จะต้องฝังตัวคุณสามารถทำได้ก่อนที่จะโทรไปยังหน้าเว็บที่มี IFrame ให้เปลี่ยนเส้นทางไปยังโดเมนนั้นซึ่งจะสร้างคุกกี้และเปลี่ยนเส้นทางกลับดังที่อธิบายไว้ที่นี่: http: //www.mendoweb เป็น blog / / อินเทอร์เน็ต-EXPLORER-ซาฟารีของบุคคลที่สามคุกกี้ปัญหา /

สิ่งนี้จะใช้ได้กับ Internet Explorer แต่สำหรับ Safari ด้วย (เพราะ Safari บล็อกคุกกี้ของบุคคลที่สามด้วย)


1

ฉันรู้ว่ามันสายไปหน่อยที่จะให้ความช่วยเหลือในเรื่องนี้ แต่ฉันเสียเวลาไปหลายชั่วโมงจนบางทีคำตอบนี้อาจช่วยใครซักคน

ฉันพยายามโทรหาคุกกี้ของบุคคลที่สามในเว็บไซต์ของฉันและแน่นอนว่ามันไม่ทำงานบน Internet Explorer 10 แม้ในระดับความปลอดภัยต่ำ ... อย่าถามฉันว่าทำไม ใน iframe ฉันโทรหา read_cookie.php (echo $ _COOKIE) ด้วย ajax

และฉันไม่รู้ว่าทำไมฉันจึงไม่สามารถตั้งค่านโยบาย P3P เพื่อแก้ปัญหา ...

ในระหว่างการค้นหาของฉันฉันเห็นบางอย่างเกี่ยวกับการทำให้คุกกี้ทำงานได้ใน JSON ฉันไม่ลองด้วยซ้ำเพราะฉันคิดว่าถ้าคุกกี้ไม่ผ่าน iframe คุกกี้นั้นจะไม่ผ่านอีกต่อไป ...

คาดเดาสิ่งที่มันทำ! ดังนั้นหากคุณ json_encode คุกกี้ของคุณแล้วถอดรหัสหลังจากคำขอ ajax ของคุณคุณจะได้รับมัน!

อาจมีบางสิ่งที่ฉันพลาดและถ้าฉันทำขอโทษทั้งหมดของฉัน แต่ฉันไม่เคยเห็นบางสิ่งที่โง่ดังนั้น บล็อกคุกกี้ของบุคคลที่สามเพื่อความปลอดภัยทำไมถึงไม่ปล่อยให้มันผ่านไปถ้าเข้ารหัส? ความปลอดภัยอยู่ที่ไหนตอนนี้?

ฉันหวังว่าโพสต์นี้จะช่วยให้ใครสักคนและอีกครั้งถ้าฉันพลาดบางสิ่งบางอย่างและฉันโง่โปรดให้ความรู้แก่ฉัน!


ที่น่าสนใจ ... คุณกำลังถอดรหัสคุกกี้ใน JS หรือไม่
Piskvor ออกจากอาคาร

ตอนนี้ฉันเพิ่งเขียนคุกกี้ในอาร์เรย์ JSON ด้วยฟังก์ชั่น php json_encode () จากนั้นกลับมาผ่านการโทร ajax JSON
pierreaurelemartin

1

ในที่สุดก็ใช้งานได้สำหรับฉัน (หลังจากเร่งรีบและสร้างนโยบายบางอย่างโดยใช้เครื่องมือสร้างนโยบายของ IBM) คุณสามารถดาวน์โลดตัวสร้างนโยบายได้ที่นี่: http://www.softpedia.com/get/Security/Security-Related/P3P-Policy-Editor.shtml

ฉันไม่สามารถดาวน์โหลดตัวกำเนิดจากเว็บไซต์ IBM อย่างเป็นทางการได้อีก

ฉันสร้างไฟล์เหล่านี้ในโฟลเดอร์รูทของ Web-App ของฉัน

/index.php
/w3c/policy.html (Human readable format)
/w3c/p3p.xml
/w3c/policy.p3p
  1. Index.php: เพียงส่งส่วนหัวเพิ่มเติม:
header('P3P: policyref="/w3c/p3p.xml", CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV DEM"');
  1. เนื้อหาของ p3p.xml
<META>
    <POLICY-REFERENCES>
        <POLICY-REF about="/w3c/policy.p3p#App">
            <INCLUDE>/</INCLUDE>
            <COOKIE-INCLUDE/>
        </POLICY-REF>
    </POLICY-REFERENCES>
</META>
  1. เนื้อหาของไฟล์ policy.html ของฉัน

<html>
<head>
<STYLE type="text/css">
title { color: #3333FF}
</STYLE>
<title>Privacy Statement for YOUR COMPANY NAME</title>
</head>
<body>
<h1 class="title">Privacy Policy</h1>
<!-- "About Us" section of privacy policy -->
<h2>About Us</h2>
<p>This is a privacy policy for YOUR COMPANY NAME.
Our homepage on the Web is located at <a href="YOURWEBSITE">
YOURWEBSITE</a>.
The full text of our privacy policy is available on the Web at 
<a href="ABSOLUTE URL OF THIS FILE">
ABSOLUTE URL OF THIS FILE</a>
This policy does not tell users where they can go to exercise their opt-in or opt-out options.
<p>We invite you to contact us if you have questions about this policy.
You may contact us by mail at the following address:
<pre>FIRSTNAME LASTNAME
YOUR ADDRESS HERE
</pre>
<p>You may contact us by e-mail at 
<a href="mailto:info@YOURMAIL.de">
info@YOURMAIL.eu</a>. 
You may call us at TELEPHONENUMBER.
<!-- "Privacy Seals" section of privacy policy -->
<h2>Dispute Resolution and Privacy Seals</h2>
<p>We have the following privacy seals and/or dispute resolution mechanisms.
If you think we have not followed our privacy policy in some way, they can help you resolve your concern.
<ul>
<li>
<b>Dispute</b>:
Contact us for further information
</ul>
<!-- "Additional information" section of privacy policy -->
<h2>Additional Information</h2>
<p>
This policy is valid for 1 day from the time that it is loaded by a client.
</p>
<!-- "Data Collection" section of privacy policy -->
<h2>Data Collection</h2>
<p>P3P policies declare the data they collect in groups (also referred to as "statements").
This policy contains 1 data group.
<hr width="50%" align="center">
<h3>Group "App control data"</h3>
<p>We collect the following information:
<ul>
<li>HTTP cookies</li>
</ul>
<p>This data will be used for the following purposes:</p>
<ul>
<li>Completion and support of the current activity.</li>
<li>Web site and system administration.</li>
<li>Research and development.</li>
<li>Historical preservation.</li>
<li>Other purposes<p>Control Flow of the application</p></li>
</ul>
<p>This data will be used by ourselves and our agents.
<p>The data in this group has been marked as non-identifiable. This means that there is no
reasonable way for the site to identify the individual person this data was collected from.
<p>The following explanation is provided for why this data is collected:</p>
<blockquote>This cookie data is only used to control the application within an iframe (e.g. a Facebook App)</blockquote>
<!-- "Use of Cookies" section of privacy policy -->
<hr width="50%" align="center">
<h2>Cookies</h2>
<p>Cookies are a technology which can be used to provide you with tailored information from a Web site. A cookie is an element of data that a Web site can send to your browser, which may then store it on your system. You can set your browser to notify you when you receive a cookie, giving you the chance to decide whether to accept it.
<p>Our site makes use of cookies.
Cookies are used for the following purposes:
<ul>
<li>Site administration
<li>Completing the user's current activity
<li>Research and development
<li>Other
(Control Flow of the application)
</ul>
<!-- "Compact Policy Explanation" section of privacy policy -->
<hr width="50%" align="center">
<h2>Compact Policy Summary</h2>
<p>The compact policy which corresponds to this policy is:
<pre>
    CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV"
</pre>
<p>The following table explains the meaning of each field in the compact policy.
<center><table width="80%" border="1" cols="2">
<tr><td align="center" valign="top" width="20%"><b>Field</b></td><td align="center" valign="top" width="80%"><b>Meaning</b></td></tr>
<tr><td align="left" valign="top" width="20%"><tt>CP=</tt></td>
<td align="left" valign="top" width="80%">This is the compact policy header; it indicates that what follows is a P3P compact policy.</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>ALL</tt></td>
<td align="left" valign="top" width="80%">
Access to all collected information is available.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>DSP</tt></td>
<td align="left" valign="top" width="80%">
The policy contains at least one dispute-resolution mechanism.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NID</tt></td>
<td align="left" valign="top" width="80%">
The information collected is not personally identifiable.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>CURa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for completion of the current activity.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>ADMa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for site administration.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>DEVa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for research and development.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>HISa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for historical archival purposes.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>OTPa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for other purposes.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>OUR</tt></td>
<td align="left" valign="top" width="80%">
The data is given to ourselves and our agents.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NOR</tt></td>
<td align="left" valign="top" width="80%">
The data is not kept beyond the current transaction.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NAV</tt></td>
<td align="left" valign="top" width="80%">
Navigation and clickstream data is collected.
</td></tr>
</table></center>
<p>The compact policy is sent by the Web server along with the cookies it describes.
For more information, see the P3P deployment guide at <a href="http://www.w3.org/TR/p3pdeployment">http://www.w3.org/TR/p3pdeployment</a>.
<!-- "Policy Evaluation" section of privacy policy -->
<hr width="50%" align="center">
<h2>Policy Evaluation</h2>
<p>Microsoft Internet Explorer 6 will evaluate this policy's compact policy whenever it is used with a cookie.
The actions IE will take depend on what privacy level the user has selected in their browser (Low, Medium, Medium High, or High; the default is Medium.
In addition, IE will examine whether the cookie's policy is considered satisfactory or unsatisfactory, whether the cookie is a session cookie or a persistent cookie, and whether the cookie is used in a first-party or third-party context.
This section will attempt to evaluate this policy's compact policy against Microsoft's stated behavior for IE6.
<p><b>Note:</b> this evaluation is currently experimental and should not be considered a substitute for testing with a real Web browser.
<p><b>Satisfactory policy</b>: this compact policy is considered <em>satisfactory</em> according to the rules defined by Internet Explorer 6.
IE6 will accept cookies accompanied by this policy under the High, Medium High, Medium, Low, and Accept All Cookies settings.
</body></html>

  1. เนื้อหาของ policy.p3p
<?xml version="1.0"?>
<POLICIES xmlns="http://www.w3.org/2002/01/P3Pv1">
    <!-- Generated by IBM P3P Policy Editor version Beta 1.12 built 2/27/04 1:19 PM -->

    <!-- Expiry information for this policy -->
    <EXPIRY max-age="86400"/>

<POLICY
    name="App"
    discuri="ABSOLUTE URL TO policy.html"
    xml:lang="de">
    <!-- Description of the entity making this policy statement. -->
    <ENTITY>
    <DATA-GROUP>
<DATA ref="#business.name">COMPANY NAME</DATA>
<DATA ref="#business.contact-info.online.email">info@YOURMAIL.eu</DATA>
<DATA ref="#business.contact-info.online.uri">YOURWEBSITE</DATA>
<DATA ref="#business.contact-info.telecom.telephone.number">YOURPHONENUMBER</DATA>
<DATA ref="#business.contact-info.postal.organization">FIRSTNAME LASTNAME</DATA>
<DATA ref="#business.contact-info.postal.street">STREET</DATA>
<DATA ref="#business.contact-info.postal.city">CITY</DATA>
<DATA ref="#business.contact-info.postal.stateprov">STAGE</DATA>
<DATA ref="#business.contact-info.postal.postalcode">POSTALCODE</DATA>
<DATA ref="#business.contact-info.postal.country">Germany</DATA>
    </DATA-GROUP>
    </ENTITY>

    <!-- Disclosure -->
    <ACCESS><all/></ACCESS>


    <!-- Disputes -->
    <DISPUTES-GROUP>
        <DISPUTES resolution-type="service" service="YOURWEBSITE CONTACT FORM" short-description="Dispute">
            <LONG-DESCRIPTION>Contact us for further information</LONG-DESCRIPTION>
    <!-- No remedies specified -->
        </DISPUTES>
    </DISPUTES-GROUP>

    <!-- Statement for group "App control data" -->
    <STATEMENT>
        <EXTENSION optional="yes">
            <GROUP-INFO xmlns="http://www.software.ibm.com/P3P/editor/extension-1.0.html" name="App control data"/>
        </EXTENSION>

    <!-- Consequence -->
    <CONSEQUENCE>
This cookie data is only used to control the application within an iframe (e.g. a Facebook App)</CONSEQUENCE>

    <!-- Data in this statement is marked as being non-identifiable -->
    <NON-IDENTIFIABLE/>

    <!-- Use (purpose) -->
    <PURPOSE><admin/><current/><develop/><historical/><other-purpose>Control Flow of the application</other-purpose></PURPOSE>

    <!-- Recipients -->
    <RECIPIENT><ours/></RECIPIENT>

    <!-- Retention -->
    <RETENTION><no-retention/></RETENTION>

    <!-- Base dataschema elements. -->
    <DATA-GROUP>
    <DATA ref="#dynamic.cookies"><CATEGORIES><navigation/></CATEGORIES></DATA>
    </DATA-GROUP>
</STATEMENT>

<!-- End of policy -->
</POLICY>
</POLICIES>

มันจะไปที่หน้าต่างหลักของเซิร์ฟเวอร์ dir หรือเซิร์ฟเวอร์ iframe dir?
JackTheKnife

0

ใน Rails ฉันใช้อัญมณีนี้: https://github.com/merchii/rack-iframe มันตั้งค่าตัวย่อโดยไม่มีไฟล์อ้างอิง: https://github.com/merchii/rack-iframe/blob/master /lib/rack/iframe.rb#L8

มันง่ายในการติดตั้งเมื่อคุณไม่สนใจเกี่ยวกับความหมายของสิ่งต่าง ๆ ของ p3p


0

สำหรับทุกคนที่พยายามทำให้ P3P Compact Policy ทำงานกับเนื้อหาคงที่:

มันเป็นเพียงที่เป็นไปได้ถ้าคุณมีความสามารถที่จะส่งส่วนหัวของการตอบสนองที่กำหนดเองด้านเซิร์ฟเวอร์ที่มีเนื้อหาแบบคงที่

สำหรับคำอธิบายโดยละเอียดเพิ่มเติมดูคำตอบของฉันที่นี่: ตั้งรหัส P3P เป็น HTML



-1

ทางออกที่ดีกว่าคือการโทร Ajax ภายใน iframe ไปยังหน้าเว็บที่จะรับ / ตั้งค่าคุกกี้ ...


1
AJAX จะไม่ช่วยที่นี่: การจัดการคุกกี้ใด ๆภายใน iframe นั้นเชื่อถือได้น้อยกว่า ("คุกกี้บุคคลที่สาม") และใน IE ต้องผ่านตัวกรองนโยบายความเป็นส่วนตัว - ไม่ว่าคุณจะตั้งค่าคุกกี้ด้วยการโทร AJAX เอกสารก็ตาม .cookie การจัดการหรือผ่านหน้าปกติ (ทดสอบ)
Piskvor ออกจากอาคาร

ไม่หากคุณทำการโทร ajax ที่ตั้งค่าคุกกี้ด้วย HTTP (ภายใน iframe) Ie6 จะข้ามนโยบายความปลอดภัยและตั้งค่าคุกกี้ โปรดยืนยันว่าวิธีการแก้ปัญหาของฉันนั้นผิดพลาดก่อนการลงคะแนน
Luca Matteis

ดูnewmoon.wz.cz/test/page.phpคุณสามารถตั้งค่าคุกกี้ผ่าน AJAX แต่คุณ a) เริ่มต้นเซสชันใหม่หรือ b) ตั้งรหัสเซสชันจาก JS - รูความปลอดภัยขนาดใหญ่ (XSRF) ความคิดเห็นก่อนหน้าของฉันคือ ผิดฉันขอโทษ แต่วิธีการแก้ปัญหาของคุณดูผิดไปกว่าเดิม: การสร้างช่องโหว่ด้านความปลอดภัยดูไม่ดีสำหรับฉัน
Piskvor ออกจากอาคาร

(อะไรก็ตามที่ "ข้ามนโยบายความปลอดภัย" อย่างน้อยก็ดูเหมือนว่าเป็นข้อบกพร่องสำหรับฉัน - หากมีนโยบายก็มีด้วยเหตุผลบางอย่างว่า "เกลียวนโยบายความปลอดภัย / การตั้งค่าของผู้ใช้เรารู้ดีขึ้น" เป็นลาดลื่นอันตราย คุณจะให้ฟังก์ชั่นขึ้นอยู่กับ (ยัง) บั๊กที่รู้จักที่ไม่รู้จักกันหรือไม่?)
Piskvor ออกจากอาคาร

ตั้งค่าเซสชันใหม่หรือไม่ คุณกำลังพูดเรื่องอะไร สนับสนุนเบราว์เซอร์ส่วนใหญ่นี้โดยไม่มีสิ่งหัว P3P ดังนั้นฉันไม่เข้าใจวิธีการทำมันผ่านอาแจ็กซ์มีความแตกต่างใด ๆ ...
Luca Matteis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.