บางแบบฟอร์มมีช่องใน iframe ซึ่งทำให้เกิดปัญหาในการป้อนข้อมูลอัตโนมัติในเบราว์เซอร์ เมื่อใช้การป้อนข้อความอัตโนมัติที่แชร์ เฟรมระดับบนสุดจะกำหนดความน่าเชื่อถือของ iframe แบบข้ามต้นทางได้ เพื่อรองรับประสบการณ์การป้อนข้อความอัตโนมัติที่ดียิ่งขึ้นสำหรับผู้ใช้
ข้อเสนอในการอนุญาตให้ป้อนข้อความอัตโนมัติใน iframe แบบข้ามต้นทางพร้อมให้ใช้งานสำหรับการทดสอบ ฟีเจอร์นี้ช่วยให้เฟรมหลักกำหนดเฟรมที่ควรป้อนข้อมูลอัตโนมัติได้ วิธีนี้เป็นประโยชน์อย่างยิ่งสำหรับรูปแบบการชำระเงิน ซึ่งโดยทั่วไปแล้วจะมีการโหลดช่องที่ละเอียดอ่อน (สำหรับการปฏิบัติตามข้อกำหนดของ PCI DSS) จากต้นทางของบุคคลที่สาม เช่น ผู้ให้บริการชำระเงิน (PSP)
ในตัวอย่างต่อไปนี้ ชื่อผู้ถือบัตรและวันที่หมดอายุจะอยู่ในหน้าระดับบนสุด (หรือเมนเฟรม) แต่หมายเลขบัตรเครดิตและรหัสยืนยันอยู่ใน iframe จาก PSP
<!-- Top-level document URL: https://merchant.com/... -->
<form>
Cardholder name: <input id="name">
Credit card number: <iframe src="https://psp.com/..."><input id="num"></iframe>
Expiration date: <input id="exp">
CVC: <iframe src="https://psp.com/..."><input id="cvc"></iframe>
</form>
แผนภาพต่อไปนี้แสดงโครงสร้างของแบบฟอร์ม
สำหรับผู้ขาย การออกแบบนี้ผสมผสานความปลอดภัยและความยืดหยุ่นดังนี้
- iframe แบบข้ามต้นทางจะแยกข้อมูลการชำระเงินที่ละเอียดอ่อนออกจากโครงสร้างพื้นฐานของผู้ขาย ซึ่งช่วยให้เป็นไปตามข้อกำหนด PCI DSS
- ช่องแบบฟอร์มในเฟรมต่างๆ สามารถจัดเรียงและจัดรูปแบบให้เข้ากับรูปลักษณ์ของเว็บไซต์ผู้ขายได้
จากมุมมองของเบราว์เซอร์ นี่หมายความว่ามีกรณีการใช้งานทั่วไปและถูกต้องตามกฎหมายสำหรับฟอร์มหลายเฟรม ซึ่งทำให้เกิดคำถามเกี่ยวกับโมเดลความปลอดภัยสำหรับฟอร์ม สำหรับผู้ใช้ แบบฟอร์มหลายเฟรมอาจทำให้การป้อนข้อความอัตโนมัติมีคุณภาพไม่ดี ดังตัวอย่างต่อไปนี้
นโยบายต้นทางเดียวกันเป็นเกณฑ์พื้นฐานที่มั่นคงสำหรับการป้อนข้อความอัตโนมัติข้ามเฟรม แต่ไม่ให้รายละเอียดเพียงพอให้เบราว์เซอร์แยกความแตกต่างระหว่างเฟรมที่เชื่อถือได้กับเฟรมที่ไม่น่าเชื่อถือสำหรับการป้อนข้อความอัตโนมัติ
ทีม Chrome กำลังจัดทำข้อเสนอเพื่ออนุญาตให้ป้อนข้อความอัตโนมัติใน iframe แบบข้ามต้นทาง เพื่อมอบประสบการณ์การใช้งานฟีเจอร์ป้อนข้อความอัตโนมัติที่ดียิ่งขึ้นและยังรักษาความปลอดภัยของข้อมูลผู้ใช้ หากเปลี่ยนแบบฟอร์มไปใช้การป้อนข้อความอัตโนมัติที่แชร์ Chrome จะกรอกหมายเลขบัตรเครดิตแบบข้ามต้นทางสำเร็จ
<!-- Top-level document URL: https://merchant.com/... -->
<form>
Cardholder name: <input id="name">
Credit card number: <iframe src="https://psp.com/..." allow="shared-autofill"><input id="num"></iframe>
Expiration date: <input id="exp">
CVC: <iframe src="https://psp.com/..." allow="shared-autofill"><input id="cvc"></iframe>
</form>
ซึ่งอาจส่งผลให้ประสบการณ์การป้อนข้อความอัตโนมัติดีขึ้นสำหรับผู้ใช้
ลองใช้การป้อนอัตโนมัติที่แชร์ภายในเครื่อง
คุณทดสอบการป้อนข้อความอัตโนมัติที่แชร์สำหรับผู้ใช้รายเดียวใน Chrome 93.0.4577.0 ขึ้นไปบนเดสก์ท็อปและอุปกรณ์เคลื่อนที่ได้โดยการตั้งค่าแฟล็กจากบรรทัดคำสั่ง
--flag-switches-begin --enable-features=AutofillAcrossIframes,AutofillSharedAutofill
ตรวจหาการรองรับฟีเจอร์
ใช้รหัสต่อไปนี้เพื่อตรวจหาว่าพร็อพเพอร์ตี้ shared-autofill
พร้อมใช้งานหรือไม่
if (document.featurePolicy && document.featurePolicy
.features().includes('shared-autofill')) {
console.log('shared-autofill available!');
}
ขั้นตอนถัดไปคือ
การป้อนข้อความอัตโนมัติที่แชร์เป็นข้อเสนอเริ่มต้นที่จะเพิ่มฟีเจอร์ป้อนข้อความอัตโนมัติลงในนโยบายสิทธิ์ ขณะนี้ทีม Chrome กำลังทำงานร่วมกับ ผู้ให้บริการเบราว์เซอร์อื่นๆ เพื่อตรวจสอบข้อเสนอ นอกจากนี้ เรายังมีข้อเสนอเพิ่มเติมเกี่ยวกับวิธีเพิ่มประสบการณ์ของผู้ใช้ สำหรับการป้อนข้อความอัตโนมัติใน iframe ที่อยู่ระหว่างการพิจารณาด้วย
เราจะคอยแจ้งความคืบหน้าในขณะที่เราดำเนินการกับข้อเสนอนี้ ในระหว่างนี้ หากคุณมีหน้าชำระเงินที่มีการฝังช่อง <input> ที่ละเอียดอ่อน (หมายเลขบัตรเครดิต, Cvc) จากผู้ให้บริการบุคคลที่สาม โปรดติดต่อเรา เรายินดีรับฟังว่าการป้อนข้อความอัตโนมัติที่แชร์ใน iframe จะช่วยปรับปรุงประสบการณ์การป้อนอัตโนมัติของผู้ใช้ในระหว่างกระบวนการชำระเงินได้ไหม
ดูข้อมูลเพิ่มเติม
รูปภาพโดย Jessica Ruscello ใน Unsplash