นโยบายการรักษาความปลอดภัยของเนื้อหา
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 | 'ไม่มี' | ทำหน้าที่เป็นทางเลือกสำรองสำหรับคำสั่งการแยกข้อมูลอื่นๆ |
content_security_policy.directive.connect_src | * | จำกัด URL ที่สามารถโหลดได้โดยใช้อินเทอร์เฟซของสคริปต์ |
content_security_policy.directive.script_src | * | ระบุแหล่งที่มาที่ถูกต้องสำหรับ JavaScript |
content_security_policy.directive.style_src | * 'ไม่ปลอดภัยในบรรทัด' | ระบุแหล่งที่มาที่ถูกต้องสำหรับสไตล์ชีต |
content_security_policy.directive.img_src | * ข้อมูล: | ระบุแหล่งที่มาของรูปภาพและ Favicon ที่ถูกต้อง |
content_security_policy.directive.font_src | * ข้อมูล: | ระบุแหล่งที่มาที่ถูกต้องสำหรับฟอนต์ที่โหลดโดยใช้ @font-face |
content_security_policy.directive.frame_src | * ข้อมูล: | ระบุแหล่งที่มาที่ถูกต้องสำหรับการโหลดบริบทการสืบค้นที่ซ้อนกันโดยใช้สมาชิก เช่น <frame> และ <iframe> |
content_security_policy.directive.object_src | ข้อมูล: | ระบุแหล่งที่มาที่ถูกต้องสำหรับสมาชิก <object>, <embed> และ <applet> |
content_security_policy.directive.report_uri | /vizql/csp-report | สั่งให้ตัวแทนผู้ใช้รายงานความพยายามที่จะละเมิด CSP รายงานการละเมิดเหล่านี้ประกอบด้วยเอกสาร JSON ที่ส่งผ่านคำขอ HTTP POST ไปยัง 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
โหลดการทดสอบการแสดงเป็นภาพโดยมีการละเมิดที่โฮสต์ในการปรับใช้ Tableau Server ที่คุณกำหนดค่า CSP
ป้อน
CTRL+Shift+I
เพื่อเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ใน Chromeคลิกแท็บเครือข่าย
ในฟิลด์ตัวกรอง ให้ป้อน
csp-report
แล้วคลิกค้นหาทั้งหมดหากไม่มีการละเมิด การค้นหาจะไม่ส่งคืนรายงาน CSP ใดๆ
หากมีการละเมิด ให้คลิกแท็บส่วนหัวในบานหน้าต่างผลลัพธ์ และเลื่อนลงมาด้านล่างเพื่อดูเพย์โหลดของคำขอ