การเก็บข้อมูลในสถานะล็อกอินมักต้องใช้หลายบัญชี และการจำกัดการใช้งานไม่ได้เกิดจากสคริปต์เสมอไป หากแยกความเสี่ยงด้านการเชื่อมโยงออกเป็นลักษณะอุปกรณ์ ทางออกเครือข่าย สถานะเซสชัน และจังหวะคำขอ จะเห็นได้ชัดขึ้นว่าตัวแปรใดควบคุมและรักษาให้เสถียรได้ในระยะยาว
การเก็บข้อมูลอีคอมเมิร์ซโดยทั่วไปแบ่งได้เป็นสองประเภท ได้แก่ การเก็บจากหน้าสาธารณะที่ไม่ต้องล็อกอิน และการเก็บข้อมูลในสถานะที่ล็อกอินแล้ว เช่น การดูข้อมูลหลังบ้านของคู่แข่ง หรือดึงผลลัพธ์ที่แสดงหลังจากมีการปรับให้เหมาะกับผู้ใช้แต่ละราย
สำหรับประเภทแรก การควบคุมความถี่มักเพียงพอ แต่เมื่อประเภทที่สองเกี่ยวข้องกับหลายบัญชี ปัจจัยชี้ขาดไม่ได้อยู่ที่ว่าสคริปต์ฉลาดเพียงใด แต่อยู่ที่แต่ละบัญชีสามารถดำรงอยู่แยกจากกันได้หรือไม่ หากชั้นนี้จัดการไม่ดี การจำกัดอัตราและการระงับบัญชีจะดูเหมือนเกิดแบบสุ่ม และการแก้สคริปต์ ลดความถี่ หรือเปลี่ยน selector ก็ไม่ช่วยให้ดีขึ้น
ความเสี่ยงมาจากไหน
แพลตฟอร์มตรวจว่าหลายบัญชีถูกใช้งานโดยฝ่ายเดียวกันหรือไม่ผ่านการตรวจสอบไขว้ เช่น ที่อยู่เครือข่าย ลักษณะของเบราว์เซอร์และอุปกรณ์ ข้อมูล Cookie และเซสชัน รวมถึงรูปแบบการใช้งาน หากสัญญาณในหมวดใดหมวดหนึ่งซ้ำกันมาก บัญชีเหล่านั้นอาจถูกจัดให้อยู่ภายใต้ผู้ควบคุมเดียวกัน
ตรงนี้ต้องกำหนดขอบเขตให้ชัดเจน ตรรกะการตรวจจับมีการปรับปรุงอยู่ตลอด การอาศัยเทคนิคชั่วคราวเพื่อรับมือจึงให้ผลสั้นและมีต้นทุนสูง บทความนี้จึงไม่พูดถึงวิธีหลบเลี่ยงระบบควบคุมความเสี่ยง สิ่งที่ควรถามมากกว่าคือ เมื่อแยกแหล่งที่มาของความเสี่ยงได้แล้ว ตัวแปรใดที่เราควบคุมและรักษาให้คงที่ได้ในระยะยาว ตัวแปรเหล่านี้เป็นตัวกำหนดว่าหลายบัญชีที่ใช้งานอย่างถูกต้องจะส่งผลกระทบต่อกันหรือไม่
ลักษณะของอุปกรณ์และเบราว์เซอร์
รูปแบบที่เกิดปัญหาได้ง่ายที่สุดอย่างหนึ่งคือการเปิดหลายหน้าต่างบนเครื่องเดียว แล้วล็อกอินด้วยบัญชีต่างกัน แม้ล้างแคชหรือใช้โหมดไม่ระบุตัวตน หน้าต่างเหล่านั้นก็ยังใช้สภาพแวดล้อมระบบและข้อมูลเบราว์เซอร์ชุดเดียวกัน ลักษณะต่าง ๆ จึงยังทับซ้อนกัน และแพลตฟอร์มเห็นอุปกรณ์เครื่องเดียวสลับตัวตนซ้ำ ๆ
แนวทางที่ควบคุมได้คือให้แต่ละบัญชีมีสภาพแวดล้อมของตัวเอง: หนึ่งบัญชีต่อหนึ่งสภาพแวดล้อมอิสระ โดยแยก fingerprint, Cookies และ local storage ออกจากกัน สิ่งสำคัญคือต้องผูกสภาพแวดล้อมนั้นไว้กับบัญชี ไม่ใช่สร้างชุดแบบสุ่มใหม่ทุกครั้งที่เริ่มทำงาน การสุ่มมักทำให้ข้อมูลขัดแย้งกันเอง เช่น เขตเวลา ภาษา ความละเอียดหน้าจอ และ UA ไม่สอดคล้องกัน จึงดูผิดปกติกว่าการตั้งค่าที่เสถียร
ท้ายที่สุด ความเสถียรมาจากความสอดคล้อง ไม่ใช่ความสุ่ม
ทางออกเครือข่าย
ทางออกควรถูกผูกกับบัญชี: หนึ่งสภาพแวดล้อมต่อหนึ่งทางออก และภูมิภาคของทางออกควรสอดคล้องกับข้อมูลบัญชี เขตเวลา และภาษา หากหลายบัญชีแยกสภาพแวดล้อมกันแต่ใช้ทางออกเดียวกัน ประโยชน์จากการแยกก่อนหน้านี้จะลดลงอย่างมาก
ทางออกควรมีความเสถียรพอสมควรด้วย การเปลี่ยนภูมิภาคบ่อยทำให้สัญญาณตำแหน่งของบัญชีอธิบายได้ยาก เมื่อเลือกทางออก ที่อยู่แบบที่พักอาศัยโดยทั่วไปมักดูคล้ายการใช้งานของผู้ใช้ทั่วไปมากกว่าที่อยู่ของศูนย์ข้อมูล และควรหลีกเลี่ยงที่อยู่ที่ถูกใช้ในปริมาณมากมาแล้ว เพราะอาจถูกเฝ้าระวังใกล้ชิดกว่าเดิม
Cookies และเซสชัน
สถานะเซสชันเองก็เป็นบันทึกตัวตน หากหลายบัญชีใช้ Cookies หรือ local storage ชุดเดียวกัน ก็เท่ากับสร้างความเชื่อมโยงโดยตรงระหว่างบัญชี ต่อให้ส่วนอื่นของสภาพแวดล้อมถูกแยกไว้อย่างสะอาดเพียงใดก็ตาม
เซสชันในสภาพแวดล้อมใหม่ก็ไม่ควรถูกใช้งานอย่างหนักตั้งแต่แรก ควรมีช่วงของการเรียกดูตามปกติเพื่อสะสมประวัติ แล้วค่อยเพิ่มปริมาณงานทีละน้อย หลักการนี้ใช้ได้กับกรณีอื่นนอกเหนือจากการเก็บข้อมูลด้วย เพราะการมีหรือไม่มีประวัติการใช้งานมีผลโดยตรงต่อระดับกิจกรรมที่บัญชีสามารถรองรับได้อย่างสมเหตุสมผล
จังหวะคำขอ
ความหนาแน่นของคำขอเป็นสัญญาณด้านพฤติกรรม สคริปต์มักมีลักษณะเป็นจังหวะที่สม่ำเสมอ เช่น ช่วงห่างการเข้าถึงคงที่ ลำดับหน้าเหมือนเดิม และไม่มีพฤติกรรมอื่นนอกเหนือจากการเก็บข้อมูล ความสม่ำเสมอนี้แก้ไม่ได้ด้วยการเติมค่าการสุ่มเพียงอย่างเดียว เพราะปัญหาหลักอยู่ที่ปริมาณรวม
แนวทางที่ควบคุมได้คือรักษาปริมาณงานให้อยู่ในช่วงที่เหมาะสม: กระจายเวลาทำงานของแต่ละบัญชี ไม่ให้ทุกบัญชีทำงานเต็มกำลังพร้อมกัน เว้นช่วงที่สมเหตุสมผลระหว่างหน้า และแยกงานเก็บข้อมูลที่มีลำดับความสำคัญสูงกับต่ำ ขอบเขตนั้นชัดเจน คือการเก็บข้อมูลของคุณไม่ควรสร้างแรงกดดันต่อบริการเป้าหมาย ความเร็วที่ได้มาด้วยการกระทบการทำงานของบริการอีกฝ่ายไม่ใช่การแลกเปลี่ยนที่เหมาะสม
ทำไมสภาพแวดล้อมคงที่ต่อบัญชีจึงเสถียรกว่าการสลับแบบสุ่ม
แรงจูงใจของการสลับแบบสุ่มคือทำให้แต่ละครั้งดูแตกต่าง แต่การตรวจความเชื่อมโยงจะดูว่าสัญญาณในแต่ละมิติคงที่หรือไม่ และมีความขัดแย้งกันเองหรือไม่ หากวันนี้บัญชีออกจากที่หนึ่ง พรุ่งนี้ออกจากอีกที่หนึ่ง และชุดลักษณะเปลี่ยนไปทุกครั้ง ความไม่สอดคล้องนั้นเองก็กลายเป็นสัญญาณผิดปกติ
สภาพแวดล้อมคงที่ใช้ตรรกะตรงกันข้าม ตั้งแต่สมัคร บัญชีจะมีตัวตนที่สอดคล้องกัน: สภาพแวดล้อมคงที่ ทางออกคงที่ เขตเวลาและภาษาที่เข้าชุดกัน และประวัติเซสชันที่ค่อย ๆ สะสม ยิ่งรักษาความสอดคล้องนี้ไว้นาน กิจกรรมก็ยิ่งดูคล้ายผู้ใช้ทั่วไป คุณค่าของชั้นสภาพแวดล้อมจึงอยู่ที่ความเสถียรระยะยาว ไม่ใช่การเปลี่ยนแปลงที่หวือหวา
เรื่องนี้ยังอธิบายว่าทำไมสคริปต์เก็บข้อมูลไม่ควรจัดการ browser instances ด้วยตัวเอง สภาพแวดล้อมต้องสามารถจัดตารางแยกจากกันได้เพื่อกำหนดสภาพแวดล้อมเฉพาะให้แต่ละบัญชี ต้องตรวจสอบสถานะได้เพื่อค้นหาสภาพแวดล้อมที่ผิดปกติและบัญชีที่ใช้งานไม่ได้ ต้องสามารถนำสภาพแวดล้อมกลับมาใช้ใหม่เพื่อไม่ให้การทำงานระยะยาวสะสม zombie instances และเมื่อรันงานเก็บข้อมูลซ้ำก็มักต้องเปลี่ยนสภาพแวดล้อม ซึ่งทำได้อย่างเหมาะสมเมื่อสภาพแวดล้อมจัดตารางแยกกันได้เท่านั้น ในสถาปัตยกรรมแบบนี้ PurpleMark คือชั้นทรัพยากรสภาพแวดล้อม ส่วนสคริปต์ดูแลเพียงตรรกะการเก็บข้อมูล โดยมอบเรื่องตัวตนและทรัพยากรให้ชั้นสภาพแวดล้อม
ขอบเขตด้านการปฏิบัติตามข้อกำหนด
ประเด็นต่อไปนี้สำคัญกว่าการปรับแต่งทั้งหมดที่กล่าวมาก่อนหน้า
ปฏิบัติตามข้อกำหนดการให้บริการและกฎ robots ของเว็บไซต์เป้าหมาย แพลตฟอร์มอีคอมเมิร์ซจำนวนมากจำกัดการเข้าถึงแบบอัตโนมัติไว้อย่างชัดเจนในข้อกำหนด ดังนั้นควรตรวจสอบก่อนเริ่มว่าวิธีใช้งานที่ตั้งใจไว้อนุญาตหรือไม่ เก็บเฉพาะข้อมูลสาธารณะเกี่ยวกับสินค้า ราคา และสต็อก และไม่เก็บข้อมูลส่วนบุคคล อย่าหลีกเลี่ยงมาตรการป้องกันทางเทคนิค หากพบการป้องกันอย่าง CAPTCHA หรืออินเทอร์เฟซที่เข้ารหัส ควรปรับกลยุทธ์การเก็บข้อมูลหรือขออนุญาต แทนการพยายามทำลายการป้องกัน ควบคุมความถี่ของคำขอไม่ว่าจะมีบัญชีกี่บัญชี และอย่ารบกวนการทำงานตามปกติของบริการเป้าหมาย
พื้นฐานของการพูดคุยนี้คือวิธีทำให้หลายบัญชีที่ถูกต้องแยกจากกันและไม่รบกวนกัน ไม่ใช่วิธีหลบเลี่ยงกฎของแพลตฟอร์ม เรื่องแรกคือสุขอนามัยในการดำเนินงาน ส่วนเรื่องหลังเป็นอีกประเด็นหนึ่ง


