DO_NOT_TRACK - มาตรฐานเพื่อการคุ้มครองความเป็นส่วนตัว
(donottrack.sh)- DO_NOT_TRACK คือข้อเสนอให้รวมวิธีปิดใช้งานเทเลเมทรีที่แตกต่างกันในแต่ละ CLI tool, SDK และเฟรมเวิร์ก ให้เป็นตัวแปรสภาพแวดล้อมเดียว
.NET,AWS SAM CLI,Azure CLI,Gatsby,Go,Google Cloud SDK,Homebrew,Netlify CLI,Syncthingต่างก็ปิด telemetry ด้วยการตั้งค่าหรือคำสั่งที่แตกต่างกันDO_NOT_TRACK=1หมายถึงการปฏิเสธ ad tracking, usage reporting, telemetry, crash reporting และคำขอไปยังผู้พัฒนาหรือบุคคลที่สามที่ไม่จำเป็นต่อการทำงานของฟีเจอร์- ผู้ใช้สามารถตั้งค่า
export DO_NOT_TRACK=1และเพิ่มไว้ใน shell settings ของ Bash, Zsh, Fish, PowerShell, Windows CMD เพื่อให้มีผลกับทุก terminal session - ผู้พัฒนาซอฟต์แวร์ควรตรวจสอบ
DO_NOT_TRACKและเมื่อมีค่าเป็น1ต้องปิดการติดตามทั้งหมด พร้อมทั้งเคารพตัวแปรนี้ควบคู่ไปกับวิธีปิดใช้งานแบบเดิม
ปัญหาและข้อเสนอ
- CLI tool, SDK และเฟรมเวิร์กจำนวนมากเก็บ ข้อมูล telemetry โดยค่าเริ่มต้น และแต่ละตัวก็มีวิธีปิดใช้งานต่างกันไป
- ตัวอย่างเช่น
.NETใช้DOTNET_CLI_TELEMETRY_OPTOUT=1,AWS SAM CLIใช้SAM_CLI_TELEMETRY=0,Azure CLIใช้AZURE_CORE_COLLECT_TELEMETRY=0,Gatsbyใช้GATSBY_TELEMETRY_DISABLED=1,Goใช้go telemetry off,Google Cloud SDKใช้gcloud config set disable_usage_reporting true,Homebrewใช้HOMEBREW_NO_ANALYTICS=1,Netlify CLIใช้netlify --telemetry-disable,Syncthingใช้STNOUPGRADE=1 - มีการเสนอ
DO_NOT_TRACKให้เป็น ตัวแปรสภาพแวดล้อมมาตรฐานตัวเดียว ที่สื่ออย่างชัดเจนว่าผู้ใช้ปฏิเสธสิ่งต่อไปนี้- ad tracking
- การรายงานการใช้งาน ไม่ว่าจะระบุว่าไม่ระบุตัวตนหรือไม่ก็ตาม
- telemetry
- crash reporting
- คำขอไปยังผู้พัฒนาซอฟต์แวร์หรือบุคคลที่สามที่ไม่จำเป็นต่อการทำงานของฟีเจอร์
- ผู้ใช้สามารถแสดงเจตนาว่าต้องการซอฟต์แวร์ที่ทำงานในเครื่องเท่านั้นได้ด้วยการตั้งค่า
export DO_NOT_TRACK=1 - หากเพิ่มไว้ในไฟล์ตั้งค่า shell ก็จะมีผลกับทุก terminal session
- Bash:
~/.bashrcเพิ่มexport DO_NOT_TRACK=1 - Zsh:
~/.zshrcเพิ่มexport DO_NOT_TRACK=1 - Fish:
~/.config/fish/config.fishเพิ่มset -x DO_NOT_TRACK 1 - PowerShell: เพิ่ม
$env:DO_NOT_TRACK = "1"ลงใน$PROFILE - Windows CMD: ตั้งค่าตัวแปรสภาพแวดล้อมของระบบด้วย
setx DO_NOT_TRACK 1
- Bash:
ผู้พัฒนาซอฟต์แวร์และมาตรฐานที่เกี่ยวข้อง
- เครื่องมือที่มี telemetry, analytics หรือ network request ที่ไม่จำเป็นต่อการทำงานของฟีเจอร์ ควรตรวจสอบตัวแปร
DO_NOT_TRACK - หาก
DO_NOT_TRACKถูกตั้งเป็น1ต้องปิดการติดตามทั้งหมด - ควรเคารพตัวแปรนี้ควบคู่ไปกับวิธีปิดใช้งานแบบเดิม
- นอกจากการเปิด telemetry เป็นค่าเริ่มต้นแล้วให้ผู้ใช้ค่อยปฏิเสธ ยังควรพิจารณาแนวทางแบบ opt-in ด้วย
- no-color.org —
NO_COLOR, มาตรฐานสำหรับปิดการแสดงผลสี - force-color.org —
FORCE_COLOR, มาตรฐานสำหรับบังคับการแสดงผลสี
1 ความคิดเห็น
ความเห็นจาก Hacker News
มาถึงจุดนี้แล้ว การที่ค่าเริ่มต้นกลายเป็นสถานะ ยินยอมให้ติดตาม ก็เป็นเรื่องที่น่าสนใจตรงแทบไม่มีใครแปลกใจ
แฟล็กอย่าง
DO_NOT_TRACKดูเหมือนจะดี แต่ในขณะเดียวกันก็ให้ความรู้สึกขนลุกเหมือนมันหมายความว่าค่าเริ่มต้นคือCONSENT_TO_TRACK=1ที่อินเทอร์เน็ตเติบโตมาได้ก็เพราะโมเดลธุรกิจหลักคือโฆษณาและเซิร์ฟเวอร์ที่ดึงข้อมูลอนุมานจากผู้ใช้
มันไม่สนุก ไม่เป็นส่วนตัว และไม่ปลอดภัย แต่ในเขตอำนาจศาลและอุตสาหกรรมส่วนใหญ่ก็ไม่ได้ผิดกฎหมาย
แฟล็กนี้ไม่ใช่อุดมคติแบบเทพนิยาย แต่เป็นการตอบสนองต่อความเป็นจริงที่ถูกทำให้ฝังแน่นไปแล้วทั้งในทางปฏิบัติและทางกฎหมาย
ฉันไม่อยากส่งข้อมูลอะไรออกไปเลย และแน่นอนว่าไม่อยากถูกติดตาม ดังนั้นการแสดงสิ่งนี้ด้วย ตัวแปรสภาพแวดล้อม เพียงตัวเดียวตั้งแต่แรกก็ฟังไม่สมเหตุสมผล
เข้าใจยากว่าทำไมคนที่ไม่อยากถูกติดตามถึงยังโอเคกับการให้ข้อมูลนั้น และทันทีที่ให้ข้อมูลนั้นไป มันก็เท่ากับถูกทำเครื่องหมายแล้ว
ปกติจะตั้งชื่อตัวแปรให้เป็นรูปบวกเสมอ ดังนั้นในกรณีนี้ก็ควรเป็น
ALLOW_TRACKING=0มันทำให้สม่ำเสมอและหลีกเลี่ยง ปฏิเสธซ้อนปฏิเสธ จึงอนุมานได้ง่ายกว่า
แต่ชื่อ “DO NOT TRACK” อาจเป็นคำที่เริ่มติดตลาดไปพอสมควรแล้ว
ALLOW_TRACKINGเป็นรายการคั่นด้วยจุลภาค เพื่อระบุเฉพาะแอปพลิเคชันที่อนุญาตก็ได้ตัวอย่างเช่น ถ้าอยากแชร์ telemetry ให้
goกับbrewแต่ไม่ต้องการให้awsและตัวอื่น ๆ ก็อาจตั้งเป็นALLOW_TRACKING=go,brewมีโอกาสสูงที่จะลงเอยแบบเดียวกับ
DNTของเบราว์เซอร์แต่การรวมตัวแปรสภาพแวดล้อมประเภท “ห้ามติดตาม” ทั้งหมดไว้ในไฟล์
do_not_track.envเดียวก็ดูไม่เลวถ้าอยากทำตามสเปกของหน้านี้แต่จัดการด้วยตัวแปรสภาพแวดล้อมง่าย ๆ ตัวเดียว ก็มี https://github.com/alloydwhitlock/do-not-track-cli ด้วย
DNTโดยอ้างว่า Microsoft เปิดใช้เป็นค่าเริ่มต้นและนั่นเป็นการพรากสิทธิ์ในการเลือกของผู้ใช้ในความเป็นจริงก็น่าจะเป็นไปได้สูงว่าเดิมทีก็ไม่ได้ตั้งใจจะปฏิบัติตามอยู่แล้ว
แทนที่จะเรียกร้องให้ทุกคนใช้สิ่งเดียวกัน คำตอบที่ใช้งานได้จริงอาจเป็นแนวทางแบบนี้
คิดว่าจะลองทำอะไรสักอย่างเป็นจุดเริ่มต้น
เผื่อไว้เป็นข้อมูล Go telemetry จะถูกเก็บไว้ในเครื่องเท่านั้นโดยค่าเริ่มต้นและไม่ได้อัปโหลด: https://go.dev/doc/telemetry
รู้สึกแปลกใจที่การกันไม่ให้ไลบรารี Python
transformersติดต่อกับ Hugging Face ทำได้ยากกว่าที่คิดตั้ง
HF_HUB_DISABLE_TELEMETRY=1แล้ว และตอนเรียกWav2Vec2CTCTokenizer.from_pretrainedก็ระบุlocal_files_only=Trueด้วย แต่ก็ยังมีคำเตือนว่าไม่มีHF_TOKENที่ถูกต้องเพิ่งจะพอมั่นใจได้บ้างว่าเวลาโหลดโมเดล
wav2vec2จากดิสก์จะไม่มีการเชื่อมต่อออกไปหา HF ทุกครั้ง ก็ตอนบังเอิญไปเจอHF_HUB_OFFLINE=1ถ้าไม่ใช่เพราะคำเตือน
HF_TOKENที่น่ารำคาญนั้น ก็คงไม่รู้เลยว่ามันมีเรื่องแบบนี้เกิดขึ้นแม้ทุกอย่างที่ต้องใช้จะอยู่ในเครื่องครบแล้ว วิธีจัดการเพื่อไม่ให้มันเสียเวลาไปกับการพยายามเชื่อมต่อก็ยังเปลี่ยนไปเรื่อย ๆ
เมื่อก่อนยังมี
TRANSFORMERS_OFFLINE,HF_DATASETS_OFFLINEอะไรพวกนี้ด้วยดูเหมือน ฮันนีพอต ที่มีประโยชน์
ถ้าเป็นเครื่องมือที่ประกาศชัดว่ารองรับสเปกนี้ ก็อาจตีความได้ว่าตั้งแต่แรกมันเก็บ telemetry โดยไม่มีการยินยอมอย่างชัดเจน จึงเป็นเครื่องมือที่ควรหลีกเลี่ยง
DO_NOT_TRACKไม่ได้แปลว่าการติดตามนั้นไม่ใช่แบบขอความยินยอมอย่างชัดเจนเสมอไปเช่น ซอฟต์แวร์อาจแครช แล้วตัวจัดการแครชถามว่าจะส่ง dump หรือไม่
ถ้ามี
DO_NOT_TRACKตัวจัดการแครชเองก็จะถูกปิด ทำให้ไม่มีทั้งคำถามและไม่มีการส่ง dumpถ้ามีการนำไปใช้ในระดับหนึ่ง ก็น่าจะทำงานในลักษณะนั้น
ฝั่งที่ทำเงินจากการติดตามอย่างโฆษณาคงจะไม่รองรับตัวเลือกแบบนี้
ไม่อย่างนั้นคุณอาจใช้เครื่องมือสมัยใหม่หลายอย่างไม่ได้เลย
ระหว่างที่รอให้บริษัทต่าง ๆ ค่อย ๆ นำข้อเสนอนี้ไปทำจริง มีที่ไหนที่รวบรวม วิธี opt-out ของเครื่องมือยอดนิยมไว้ในที่เดียวไหม?
ดูเหมือนจะทำเป็นเชลล์โมดูลที่ตั้งค่าพวกนั้นให้เลยและอัปเดตรายการเป็นระยะ ๆ ก็ยังได้
อาจจะง่ายกว่าถ้าดูแล DNS เองแล้วใส่โดเมนที่มีปัญหาไว้ในรายการบล็อก
มีรายการบล็อกดี ๆ ที่รวมโดเมน telemetry ไว้เป็นหลักหลายล้านรายการด้วย เช่น https://github.com/hagezi/dns-blocklists
คนที่ชอบตะโกนเรื่อง “มาตรฐาน” ก็แค่กำลังเพิ่มอีกหนึ่งรายการเข้าไปในลิสต์ทางเลือกนอกระบบที่ยาวอยู่แล้วเท่านั้น
การห้ามติดตามแบบครอบจักรวาลของเบราว์เซอร์นั้นใช้กับทุกเว็บไซต์ที่เข้าเยี่ยมชมและการติดตามเพื่อจุดประสงค์ด้านโฆษณา จึงพอจะใช้ได้ในภาพรวม
แต่ telemetry เป็นปัญหาคนละแบบโดยสิ้นเชิง ดังนั้นแม้การบล็อกเป็นค่าเริ่มต้นอาจเป็นทางเลือกหนึ่ง แต่การใช้ตัวแปรมาตรฐานตัวเดียวเพื่อแสดงเจตนากับทุกเครื่องมือคงทำได้ยากในทางปฏิบัติ
เมื่อหลายปีก่อนก็มีข้อเสนอแบบเดียวกันนี้ แต่ก็ไปไม่ถึงไหน
https://web.archive.org/web/20200613155957/https://consoledo...