นโยบายการรักษาความปลอดภัยของเนื้อหา

Tableau Server รองรับมาตรฐาน Content Security Policy (นโยบายการรักษาความปลอดภัยเนื้อหาหรือ CSP) CSP มีจุดประสงค์เพื่อเป็นเกราะรักษาความปลอดภัยอีกชั้นในการป้องกันการใช้สคริปต์ข้ามเว็บไซต์และการโจมตีโดยใช้เว็บไซต์เป็นหลักที่เป็นอันตรายแบบอื่น ๆ CSP มีการใช้งานเป็นส่วนหัวการตอบสนอง HTTP ที่ช่วยให้คุณระบุตำแหน่งที่สามารถโหลดทรัพยากรภายนอก เช่น สคริปต์และรูปภาพได้อย่างปลอดภัย

ดูเว็บไซต์ Mozilla(ลิงก์จะเปิดในหน้าต่างใหม่) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ CSP

กำหนดค่าและเปิดใช้งาน CSP

CSP ได้รับการกำหนดค่าและเปิดใช้งานโดยใช้คำสั่ง ตัวเลือกการกำหนดค่า tsm ที่ตั้งค่าไว้ หากคุณกำลังรัน Tableau Server ในการปรับใช้แบบกระจาย ให้รันคำสั่งเหล่านี้บนโหนดเริ่มต้นในคลัสเตอร์ การกำหนดค่าจะถูกนำไปใช้ทั่วทั้งคลัสเตอร์หลังจากที่คุณรัน tsm pending-changes apply

ขั้นตอนที่ 1: ตั้งค่าคำสั่งเริ่มต้น

Tableau Server มีชุดคำสั่งเริ่มต้นในตารางด้านล่าง

ในการตั้งค่าคำสั่ง ให้ใช้ไวยากรณ์ tsm ต่อไปนี้

tsm configuration set -k content_security_policy.directive.<directive_name> -v "<value>"

ตัวอย่างเช่น ในการตั้งค่าคำสั่ง connect_src ให้รันคำสั่งต่อไปนี้

tsm configuration set -k content_security_policy.directive.connect_src -v "* unsafe-inline"

ตัวเลือกค่าเริ่มต้น

คำอธิบาย

content_security_policy.directive.default_src'ไม่มี'

ทำหน้าที่เป็นทางเลือกสำรองสำหรับคำสั่งการแยกข้อมูลอื่นๆ

ค่าที่ถูกต้องสำหรับ default_src(ลิงก์จะเปิดในหน้าต่างใหม่)

content_security_policy.directive.connect_src*

จำกัด URL ที่สามารถโหลดได้โดยใช้อินเทอร์เฟซของสคริปต์

ค่าที่ถูกต้องสำหรับ connect_src(ลิงก์จะเปิดในหน้าต่างใหม่)

content_security_policy.directive.script_src*

ระบุแหล่งที่มาที่ถูกต้องสำหรับ JavaScript

ค่าที่ถูกต้องสำหรับ script_src(ลิงก์จะเปิดในหน้าต่างใหม่)

content_security_policy.directive.style_src* 'ไม่ปลอดภัยในบรรทัด'

ระบุแหล่งที่มาที่ถูกต้องสำหรับสไตล์ชีต

ค่าที่ถูกต้องสำหรับ style_src(ลิงก์จะเปิดในหน้าต่างใหม่)

content_security_policy.directive.img_src* ข้อมูล:

ระบุแหล่งที่มาของรูปภาพและ Favicon ที่ถูกต้อง

ค่าที่ถูกต้องสำหรับ img_src(ลิงก์จะเปิดในหน้าต่างใหม่)

content_security_policy.directive.font_src* ข้อมูล:

ระบุแหล่งที่มาที่ถูกต้องสำหรับฟอนต์ที่โหลดโดยใช้ @font-face

ค่าที่ถูกต้องสำหรับ font_src(ลิงก์จะเปิดในหน้าต่างใหม่)

content_security_policy.directive.frame_src* ข้อมูล:

ระบุแหล่งที่มาที่ถูกต้องสำหรับการโหลดบริบทการสืบค้นที่ซ้อนกันโดยใช้สมาชิก เช่น <frame> และ <iframe>

ค่าที่ถูกต้องสำหรับ frame_src(ลิงก์จะเปิดในหน้าต่างใหม่)

content_security_policy.directive.object_srcข้อมูล:

ระบุแหล่งที่มาที่ถูกต้องสำหรับสมาชิก <object>, <embed> และ <applet>

ค่าที่ถูกต้องสำหรับ object_src(ลิงก์จะเปิดในหน้าต่างใหม่)

content_security_policy.directive.report_uri/vizql/csp-report

สั่งให้ตัวแทนผู้ใช้รายงานความพยายามที่จะละเมิด CSP รายงานการละเมิดเหล่านี้ประกอบด้วยเอกสาร JSON ที่ส่งผ่านคำขอ HTTP POST ไปยัง URI ที่ระบุ

ค่าที่ถูกต้องสำหรับ report_uri(ลิงก์จะเปิดในหน้าต่างใหม่)

ขั้นตอนที่ 2: เพิ่มคำสั่งเพิ่มเติม (ไม่บังคับ)

คำสั่งเริ่มต้นที่มาพร้อมกับ Tableau Server เป็นชุดย่อยของคำสั่งที่ได้รับการสนับสนุนโดย CSP

For a full list of supported CSP directives, go to https://developer.mozilla.org/th-th/docs/Web/HTTP/Headers/Content-Security-Policy(ลิงก์จะเปิดในหน้าต่างใหม่).

คุณสามารถเพิ่มคำสั่งให้กับชุดค่าเริ่มต้นที่มีอยู่ โดยใช้การเพิ่มคำสั่งใหม่ในเนมสเปซ content_security_policy.directive คุณต้องรวมพารามิเตอร์ --force-keys เมื่อเพิ่มคำสั่งใหม่ ให้ใช้ไวยากรณ์ดังต่อไปนี้:

tsm configuration set -k content_security_policy.directive.<new_directive_name> -v "<value>" --force-keys

ตัวอย่างเช่น ในการเพิ่มคำสั่ง worker-src(ลิงก์จะเปิดในหน้าต่างใหม่) ให้รันคำสั่งต่อไปนี้

tsm configuration set -k content_security_policy.directive.worker-src -v "none" --force-keys

ขั้นตอนที่ 3: ระบุคำสั่งเฉพาะรายงาน (ไม่บังคับ)

คุณสามารถกำหนดค่า CPS เพื่อรายงานคำสั่งบางอย่างและเพื่อบังคับใช้คำสั่งอื่นๆ เมื่อคุณตั้งค่า content_security_policy.enforce_enabled เป็นจริง คำสั่งทั้งหมดจะถูกบังคับใช้ (แม้ว่า content_security_policy.report_only_enable จะถูกตั้งค่าเป็นจริงด้วย)

หากต้องการระบุคำสั่งเป็น "รายงานเท่านั้น" และไม่ได้บังคับใช้ ให้เพิ่มคำสั่งในเนมสเปซ report_only_directive คุณต้องรวมพารามิเตอร์ --force-keys เมื่อเพิ่มคำสั่งใหม่ ให้ใช้ไวยากรณ์ดังต่อไปนี้:

tsm configuration set -k content_security_policy.report_only_directive.<directive_name> -v "<value>" --force-keys

ตัวอย่างเช่น หากต้องการรายงานเฉพาะบนคำสั่ง script_src ให้รันคำสั่งต่อไปนี้:

tsm configuration set -k content_security_policy.report_only_directive.script_src -v " http://*.example.com" --force-keys

ขั้นตอนที่ 4: เปิดใช้งาน CSP บน Tableau Server

หลังจากที่คุณกำหนดค่าคำสั่งแล้ว ให้เปิดใช้งาน CSP บน Tableau Server

ตัวเลือกต่อไปนี้ใช้เพื่อเปิดใช้งานการบังคับใช้หรือโหมดรายงานเท่านั้นสำหรับคำสั่งที่คุณตั้งไว้

ตัวเลือกค่าเริ่มต้น

คำอธิบาย

content_security_policy.enforce_enabledเท็จ

เพิ่มส่วนหัว CSP ให้กับคำขอทั้งหมดเพื่อให้เบราว์เซอร์บังคับใช้การละเมิดใดๆ

content_security_policy.report_only_enabledจริงเพิ่มส่วนหัว CSP ให้กับคำขอทั้งหมดเพื่อให้การละเมิดใดๆ ถูกบันทึกไว้ในบันทึก vizql-client ของเรา แต่จะไม่ถูกบังคับใช้โดยเบราว์เซอร์

หากต้องการเปิดใช้การบังคับใช้คำสั่ง CSP ที่คุณระบุ ให้รันคำสั่งต่อไปนี้

tsm configuration set -k content_security_policy.enforce_enabled -v true

ขั้นตอนที่ 5: รัน tsm pending-changes apply

เมื่อคุณกำหนดค่า CSP เสร็จแล้ว ให้รัน tsm pending-changes apply

หากการเปลี่ยนแปลงที่รอดำเนินการจำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์ คำสั่ง pending-changes apply จะแสดงข้อความแจ้งเพื่อแจ้งให้คุณทราบว่าจะรีสตาร์ท โดยข้อความแจ้งนี้จะปรากฏขึ้นแม้ว่าเซิร์ฟเวอร์จะหยุดทำงาน แต่ในกรณีนี้จะไม่มีการรีสตาร์ท คุณสามารถระงับข้อความแจ้งได้โดยใช้ตัวเลือก --ignore-prompt แต่การดำเนินการนี้จะไม่เปลี่ยนลักษณะการรีสตาร์ท หากการเปลี่ยนแปลงไม่จำเป็นต้องใช้การรีสตาร์ท ระบบจะปรับใช้การเปลี่ยนแปลงนั้นโดยไม่มีข้อความแจ้ง หากต้องการข้อมูลเพิ่มเติม โปรดดู tsm pending-changes apply

ดูรายงาน CSP

หากต้องการดูการละเมิด CSP สำหรับการแสดงเป็นภาพที่ระบุ ให้โหลดการแสดงเป็นภาพในเบราว์เซอร์ที่มีเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ ตัวอย่างนี้ใช้เบราว์เซอร์ Chrome

  1. โหลดการทดสอบการแสดงเป็นภาพโดยมีการละเมิดที่โฮสต์ในการปรับใช้ Tableau Server ที่คุณกำหนดค่า CSP

  2. ป้อน CTRL+Shift+I เพื่อเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ใน Chrome

  3. คลิกแท็บเครือข่าย

  4. ในฟิลด์ตัวกรอง ให้ป้อน csp-report แล้วคลิกค้นหาทั้งหมด

    • หากไม่มีการละเมิด การค้นหาจะไม่ส่งคืนรายงาน CSP ใดๆ

    • หากมีการละเมิด ให้คลิกแท็บส่วนหัวในบานหน้าต่างผลลัพธ์ และเลื่อนลงมาด้านล่างเพื่อดูเพย์โหลดของคำขอ

ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ