คำถามติดแท็ก content-management

13
ฉันควรรวมวิธีการทำลายตนเองลงในแอปพลิเคชันของฉันหรือไม่?
เมื่อเร็ว ๆ นี้ฉันมีประสบการณ์ด้านลบที่ลูกค้าประกันตัวจากการเรียกเก็บเงิน แต่คนกลางของฉันอัปโหลดซอฟต์แวร์และการออกแบบของเราไปยังเซิร์ฟเวอร์ลูกค้าแล้ว ลูกค้ากลายเป็นอาชญากรที่รู้จักและแน่นอนว่าเขาเปลี่ยนรหัสผ่านที่เป็นไปได้ทั้งหมดของเซิร์ฟเวอร์ อย่างไรก็ตามฉันยังคงสามารถเข้าถึงแผงควบคุมของ CMS ได้ น่าเศร้าที่ซอฟต์แวร์ของฉันปลอดภัยมาก .. พยายามฉีด SQL, ปลอมภาพอัปโหลด ฯลฯ ฯลฯ อย่างไรก็ตามฉันไม่สามารถแฮ็กซอฟต์แวร์ของตัวเองได้อย่างไรก็ตามฉันเตรียมที่จะฟ้องบุคคลนี้ดังนั้นจึงไม่ใช่ ปัญหา .. ฉันแค่คิดในตอนนี้ว่าอาจจะมีวิธีการทำลายโครงสร้างตัวหลัง ดังนั้นหากกรณีที่คล้ายกันเกิดขึ้นฉันมีตัวเลือกในการฆ่าซอฟต์แวร์ ความคิดของฉันคือการซ่อนฟังก์ชั่นบางอย่างในไฟล์หลัก เข้ารหัสด้วย base64 ดังนั้นจึงไม่ชัดเจน ดังนั้นสิ่งนี้: eval(base64_decode('ZWNobyAnSGVsbG8gd29ybGQhJzs=')); // echo 'Hello world!'; และโดยทั่วไปก็สร้างสคริปต์เล็ก ๆ ที่จะนำไฟล์ทั้งหมดของซอฟต์แวร์ไปตรวจสอบให้แน่ใจแล้วลบออก รุ่นใหม่ของฉันของ CMS ทั้งหมดมี filemanagers ที่ฉันสามารถใช้สำหรับง่ายแฮ็ค แต่จะเกิดอะไรขึ้นถ้าการเข้าถึงแผงควบคุมมี จำกัด เพื่อความชัดเจนนี่เป็นเพียงความหมายของซอฟต์แวร์ขั้นตอนการพัฒนาในเซิร์ฟเวอร์ส่วนตัวของฉันหรือไคลเอนต์เซิร์ฟเวอร์ (ส่วนสุดท้ายเป็นปัญหาด้านจริยธรรม) ดังนั้นหากลูกค้าของฉันควรขโมยซอฟต์แวร์ของฉัน .. จะไม่รวมอยู่ในโฆษณา -ซอฟต์แวร์. และเพื่อให้ชัดเจนยิ่งขึ้นเรากำลังพูดถึงงานอิสระที่หายากเหล่านั้น ฉันคิดว่ามันค่อนข้างสมเหตุสมผลเหตุผลที่สัญญาจ้างงานไม่ต้องการวิธีดังกล่าว ดังนั้นเราจึงพูดถึง jumprisk-client …

3
กำลังจัดเก็บเนื้อหาของไซต์ที่สามารถแก้ไขได้?
เรามีเว็บไซต์ที่ใช้ Django ซึ่งเราต้องการสร้างเนื้อหา (ข้อความและตรรกะทางธุรกิจเช่นแผนการกำหนดราคา) ที่สามารถแก้ไขได้อย่างง่ายดายภายในบริษัท ดังนั้นเราจึงตัดสินใจจัดเก็บไว้นอกรหัสเบส โดยปกติแล้วเหตุผลดังต่อไปนี้: เป็นสิ่งที่คนที่ไม่ใช่ด้านเทคนิคต้องการแก้ไข ตัวอย่างหนึ่งคือการเขียนคำโฆษณาสำหรับเว็บไซต์ - โปรแกรมเมอร์จัดทำแม่แบบพร้อมข้อความที่เป็นค่าเริ่มต้นเป็น "Lorem ipsum ... " และเนื้อหาจริงจะถูกแทรกในภายหลังไปยังฐานข้อมูล เป็นสิ่งที่เราต้องการที่จะสามารถเปลี่ยนแปลงได้อย่างรวดเร็วโดยไม่จำเป็นต้องปรับใช้รหัสใหม่ (ซึ่งปัจจุบันเราทำสองครั้งต่อสัปดาห์) ตัวอย่างจะเป็นคุณสมบัติที่มีให้กับลูกค้าในระดับราคาที่แตกต่างกัน แทนที่จะอ่านโค้ดเหล่านี้เราอ่านจากฐานข้อมูล โซลูชันที่อธิบายมีความยืดหยุ่น แต่มีสาเหตุบางอย่างที่ฉันไม่ชอบ เพราะเนื้อหาจะต้องมีการอ่านข้อมูลจากฐานข้อมูลมีค่าใช้จ่ายในการปฏิบัติงาน เราลดขนาดลงโดยใช้รูปแบบแคช แต่สิ่งนี้ยังเพิ่มความซับซ้อนให้กับระบบ นักพัฒนาซอฟต์แวร์ที่เรียกใช้รหัสภายในดูระบบในสถานะที่แตกต่างกันอย่างมากเมื่อเทียบกับวิธีการทำงานกับการผลิต การทดสอบอัตโนมัติยังใช้ระบบในสถานะที่แตกต่างกัน สถานการณ์เช่นการทดสอบคุณลักษณะใหม่บนเซิร์ฟเวอร์ staging ก็มีความยุ่งยากเช่นกันหากเซิร์ฟเวอร์ staging ไม่มีสำเนาของฐานข้อมูลล่าสุดอาจแตกต่างจากการผลิตโดยไม่คาดคิด เราสามารถลดได้โดยการยอมรับสถานะใหม่ไปยังที่เก็บเป็นครั้งคราว (เช่นโดยการเพิ่มการย้ายข้อมูล) แต่ดูเหมือนว่าวิธีการที่ผิด ใช่ไหม? ความคิดใดวิธีที่ดีที่สุดในการแก้ปัญหาเหล มีวิธีที่ดีกว่าสำหรับการจัดการเนื้อหาที่ฉันมองเห็นหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.