ทำไมเราไม่แฮ็คคอร์?


17

ฉันไม่อยากจะเชื่อว่าคำถามนี้ยังไม่ได้รับคำตอบในเว็บไซต์นี้ แต่ฉันไม่พบมันเมื่อฉันค้นหาดังนั้น ...

ทำไมการแฮ็คคอร์ถึงธรรมชาติจึงเป็นความคิดที่ไม่ดีต่ออาชญากรรม?

  • มันยอดเยี่ยมจริงๆที่สามารถอัพเกรดเวอร์ชั่นหลักของคุณ? เว็บไซต์ส่วนใหญ่ของฉันจบลงด้วยการมีแกนที่ล้าสมัยอยู่แล้วดังนั้นทำไมต้องกังวล
  • แม้ว่ามันจะไม่ดีสำหรับเจ้าของเว็บไซต์ทำไมชุมชนถึงใส่ใจอย่างมาก ทำไมถึงเรียกว่า "ฆ่าลูกแมว" นั่นไม่ใช่การผ่อนชำระมากกว่านี้ใช่ไหม
  • การแฮ็กหลักนั้นง่ายมากเราไม่ชอบเส้นทางที่ง่ายกว่าในการแก้ปัญหาหรือไม่
  • ไม่ได้เป็นปัญหาที่เกิดขึ้นมีที่สามารถเพียง แต่สามารถแก้ไขได้โดยการเจาะหลัก? ถ้าเช่นนั้นจะเป็นอย่างไร

ฉันคิดว่าถ้าคุณกำลังสร้างเว็บไซต์เล็ก ๆ ด้วยตัวเองโดยไม่มีทีมบางทีคุณอาจแฮ็คคอร์หากคุณต้องการ แต่ทำไมคุณถึงต้องการมัน ฉันเชื่อว่าคุณสามารถแก้ปัญหาได้โดยไม่ต้องแฮ็คหลัก
Petro Popelyshko

4
@ เบ ธ จริง ๆ แล้วฉันจริงจังกับเรื่องนี้มาก โปรแกรมปรับปรุงที่จำเป็นสำหรับหน้าความปลอดภัยใน D7 ได้ถูกวางสายนานกว่าปีแล้วเนื่องจากมีปัญหากับการทดสอบหน่วย เท่าที่ฉันจำได้ว่ายังมีข้อผิดพลาดใน D6 ที่มีความยาวชื่อเมนู สิ่งเหล่านี้ไม่ได้แสดงถึงความคืบหน้าใด ๆ ที่เกิดขึ้นจริง
mpdonadio

3
@MPD นั่นเป็นตัวอย่างที่ดีจริง ๆ แล้วฉันรู้ว่ามีคนเพียงไม่กี่คนที่กำลังร้องขอแพทช์เหล่านั้นเพื่อทำให้มันเป็น (ฉันรวมอยู่ด้วย) เห็นได้ชัดว่าบางครั้งคุณต้องทำการปะแกนและไม่มีอะไรผิดปกติกับมันตราบใดที่แผ่นแปะเหล่านั้นได้รับการบันทึกไว้อย่างดีและมีให้ทุกคนในทีม นอกจากนี้ยังพูดถึงความสำคัญของการมีกระบวนการปรับใช้ที่มั่นคงซึ่งไม่ได้ทำการอัพเดตแบบสุ่มสี่สุ่มห้าหากไม่มีการตรวจสอบแบบกึ่งแมนนวลเกิดขึ้นก่อนมือ ในทีม (เล็ก) ของฉันเราเพิ่งทำเอกสารว่ามีอะไรเปลี่ยนแปลงและให้แน่ใจว่าทุกคนรู้ที่จะตรวจสอบก่อนที่จะอัปเดต
Clive

3
ใช้แพตช์และจดไว้ในไฟล์ข้อความที่อยู่ในรูทของที่เก็บของคุณ
Charlie Schliesser

1
ฉันจะใช้ถ้อยคำใหม่เพื่อ "ไม่แฮ็คคอร์เว้นแต่คุณจะมีกลไกในการรับการอัปเดตของคุณ" สิ่งนี้ต้องใช้ความคิดและมีผลกระทบต่อเวิร์กโฟลว์การพัฒนาของคุณ หากคุณหรือทีมของคุณไม่ได้ดูแลพี่เลี้ยงเสริมนี้อย่าทำ
donquixote

คำตอบ:


9

โดยทั่วไปการพูดมีเหตุผลสามประการที่ทำให้ไม่สามารถแก้ไขรหัสหลักของ Drupal ได้:

  • การเปลี่ยนแปลงของคุณจะหายไปทุกครั้งที่คุณอัปเดต Drupal หากคุณไม่ทำตามขั้นตอนที่จำเป็น แม้ในกรณีที่คุณสร้างแพตช์สำหรับเวอร์ชัน Drupal ปัจจุบันที่คุณใช้แพทช์ไม่สามารถใช้กับเวอร์ชันที่ใหม่กว่าและคุณจะต้องสร้างแพตช์สำหรับเวอร์ชั่นใหม่ด้วย

  • การแก้ไขความปลอดภัยจะมีผลกับแกน Drupal ตามที่ได้รับการบำรุงรักษาบน Drupal.org แต่ไม่สามารถใช้กับเวอร์ชันที่ถูกแฮ็กของคุณได้ นั่นหมายความว่าคุณควรตรวจสอบเวอร์ชั่นของคุณว่าไม่ได้รับผลกระทบจากปัญหาด้านความปลอดภัยที่เกิดขึ้นกับ Drupal core
    ในกรณีที่เวอร์ชันแฮ็คของคุณนำเสนอปัญหาด้านความปลอดภัยที่แตกต่างกันคุณเป็นคนเดียวที่คุณสามารถค้นหาได้เนื่องจากคุณไม่ได้รับการสนับสนุนจากทีมรักษาความปลอดภัยที่ตรวจสอบข้อบกพร่องด้านความปลอดภัยที่มีอยู่ในรหัสหลักของ Drupal และบุคคลที่สาม โมดูลที่โฮสต์ใน Drupal.org

  • การเปลี่ยนแปลงที่คุณแนะนำอาจเข้ากันไม่ได้กับ Drupal เอง แต่ยังมีโมดูลของบุคคลที่สามซึ่งจำเป็นต้องใช้กับ Drupal core ไม่ใช่เวอร์ชันที่ถูกแฮ็กใดสามารถสร้างได้
    ทุกครั้งที่ Drupal แนะนำคุณลักษณะใหม่ (ซึ่งยังคงเกิดขึ้นใน Drupal 7 และใน Drupal 6 แม้ว่าจะมีความถี่น้อยกว่า) หรือการเปลี่ยนแปลง API ใหม่มีโอกาสที่เวอร์ชันแฮ็กจะไม่เข้ากับการเปลี่ยนแปลงล่าสุด

ดังกล่าวเป็นไปได้ที่จะสร้างเวอร์ชันที่ถูกแฮ็ก แต่นั่นไม่ใช่งานที่นักพัฒนาคนเดียวสามารถพกพาได้เช่นเดียวกับ Drupal ที่ไม่ได้รับการดูแลจากบุคคลเดียว อันที่จริง Pressflow เป็นเวอร์ชั่นที่ถูกแฮ็กของ Drupal ที่สร้างขึ้นโดยคำนึงถึงประสิทธิภาพและเพื่อแก้ไขปัญหาด้านประสิทธิภาพที่ไซต์ Drupal อาจมี

ไม่มีปัญหาที่สามารถแก้ไขได้โดยแฮ็คคอร์เท่านั้นใช่ไหม ถ้าเช่นนั้นจะเป็นอย่างไร

ส่วนใหญ่แล้วมันเป็นไปได้ที่จะเปลี่ยนแปลงคุณสมบัติ / พฤติกรรมโดยไม่ต้องแก้ไขโค้ดหลักของ Drupal มีตะขอที่อนุญาตให้เปลี่ยนคุณสมบัติ / พฤติกรรมที่ Drupal มีอยู่เสมอและนั่นคือวิธีการที่ต้องการ


4
ฉันอาจโพสต์ปัญหาในโลกแห่งความจริงทั้งสองที่ฉันพบเจอซึ่งอาจท้าทายการยืนยันในย่อหน้าสุดท้าย
mpdonadio

3
In the case your hacked version introduces a different security issue...ฉันไม่เห็นว่านี่เป็นข้อโต้แย้งที่แข็งแกร่งเป็นพิเศษในการปรับเปลี่ยนไฟล์คอร์กับสิ่งอื่นใด หากฉันไม่ได้แฮ็คคอร์และฉันขอแนะนำปัญหาด้านความปลอดภัยผ่านโมดูลระบบของฉันจะยังคงถูกบุกรุกอยู่ การประนีประนอมถูกบุกรุกมันไม่สำคัญว่ามันจะมาจากฉันในการแก้ไขไฟล์ที่มีอยู่หรือเพิ่มไฟล์ใหม่
Zoredache

@Zoredache หากมีปัญหาด้านความปลอดภัยปรากฏอยู่ในโมดูลของคุณคุณสามารถปิดใช้งานได้ตลอดเวลาและส่วนที่เหลือของไซต์จะทำงานได้โดยไม่มีปัญหาด้านความปลอดภัยแม้ว่าจะไม่มีคุณสมบัติก็ตาม หากคุณแนะนำปัญหาด้านความปลอดภัยในรหัสหลักของ Drupal และเป็นไปไม่ได้ที่จะคัดลอกไฟล์ต้นฉบับกลับมาเพราะคุณได้เปลี่ยนสคีมาของตารางบางตารางที่ใช้โดย Drupal นั่นเป็นปัญหาที่ใหญ่กว่า
kiamlaluno

2
ข้อความว่า "มีตะขอเสมอ ... " ไม่ถูกต้อง ไม่ใช่เรื่องแปลกทั้งหมดที่มีบางสิ่งที่อบเข้าสู่ drupal core ที่ไม่สามารถแก้ไขได้โดยไม่ต้องแฮ็คและยังมีปัญหาที่เปิดกว้างสำหรับ drupal ด้วยโปรแกรมแก้ไขที่ยังไม่ได้ทำซึ่งในกรณีนี้คุณต้องแก้ไข core เพื่อแก้ไขปัญหาเหล่านั้น
rooby

2
แน่นอน แต่นั่นเป็นตัวอย่างง่ายๆ ในกรณีส่วนใหญ่มี hooks แต่ยังคงมีเวลาที่คุณต้องแก้ไข core เว้นแต่คุณต้องการทำซ้ำรหัสจำนวนมากและสร้างสิ่งที่กำหนดเองเพิ่มเติม ตัวอย่างเช่นในการช่วยให้ผู้ดูแลระบบหนังสืออย่างถูกต้องไม่ถูกเผยแพร่บริหารคุณต้องแพทช์ที่drupal.org/node/520786หรือถ้าคุณต้องการ Drupal เริ่มต้นของการค้นหา SQL เพื่อให้ตรงกับคำพูดบางส่วน (รวมถึงมุมมองการค้นหาตัวกรอง) ที่คุณต้องการแพทช์ที่drupal.org / node / 498752 # comment-6001310 - การแก้ไขสิ่งเหล่านี้โดยไม่แฮ็คคอร์ไม่สามารถทำได้
rooby

14

ฉันสามารถเขียนคำตอบขนาดใหญ่ที่นี่ แต่ฉันจะโพสต์ลิงค์นี้: ไม่แฮ็คหลัก !

เหตุผลหลักที่ฉันเดาก็คือถ้าคุณแฮ็คหลักเพื่อทำสิ่งที่คุณต้องการแล้วอัปเดตมัน ... BANG! การเปลี่ยนแปลงของคุณจะหายไป สูญหาย. จากนั้นคุณสามารถลองและย้อนกลับรหัสจาก VCS ของคุณ แต่เมื่อคุณเห็นว่าคุณไม่สามารถย้อนกลับการอัพเกรดฐานข้อมูลจากแกน Drupal - คุณกำลังดูการกู้คืนรหัสทั้งหมดจาก VCS แล้วเรียกคืนฐานข้อมูลจากการสำรองข้อมูลของคุณ ตลอดเวลาที่คุณพยายามย้อนกลับรหัสของคุณคุณอาจสังเกตว่าการสำรองข้อมูลฐานข้อมูลล่วงหน้าที่อัปเดตครั้งล่าสุดล้มเหลวและคุณจะสาบานมากกว่าที่คุณเคยสาบานมาก่อน

ถ้าคุณแฮ็คคอร์ด้วย Dries และ Webchick จะฆ่าลูกแมวทั้งตัว: -o


4
สิ่งที่พวกเขาฆ่าลูกแมว? ฉันคิดว่ามันเป็นพระเจ้า . โลกของฉันกำลังร่วงหล่นรอบตัว ...
คลีฟ

1
คุณรู้ไหมฉันเขียนความคิดเห็นของฉันด้านบนก่อนที่ฉันจะเห็นลูกแมวพูดถึงที่นี่
mpdonadio

13

"สิ่งที่ไม่สามารถแฮ็คคอร์ทำเพื่อฉันผู้พัฒนาได้หรือไม่"

  • ไซต์ของคุณสามารถอัปเกรดเพื่อรับการเผยแพร่ด้านความปลอดภัยได้
  • เว็บไซต์ของคุณสามารถอัพเกรดเพื่อแก้ไขข้อบกพร่องที่น่ารำคาญในแกนกลาง
  • ไซต์ของคุณสามารถอัปเกรดเพื่อรองรับโมดูลใหม่
  • รายงานข้อผิดพลาดของคุณและการร้องขอการสนับสนุนในหลักและ contrib จะสามารถตอบสนองได้
  • คุณต้องการใช้ CMS ที่รองรับนั่นคือเหตุผลที่คุณเลือก Drupal เมื่อคุณแฮ็คคอร์ในคำพูดของwebchick "ถ้าคุณแฮ็คคอร์ขอแสดงความยินดี! คุณได้สร้าง Drupal ของคุณขึ้นมาแล้วตอนนี้คุณและคุณคนเดียวต้องรับผิดชอบในการดูแลมัน!"

"สิ่งใดที่แฮ็คคอร์ไม่สามารถทำได้เพื่อลูกค้าของฉัน"

  • เว็บไซต์ของคุณสามารถดูแลโดยคนอื่นหลังจากที่คุณไล่ลูกค้าออก / ชนะลอตเตอรี่ / โดนรถบัส

"สิ่งที่ไม่สามารถแฮ็คหลักทำเพื่อชุมชนของฉันได้"

  • รายงานข้อผิดพลาดของคุณจะให้ข้อมูลที่เป็นประโยชน์สำหรับผู้ดูแลโมดูลหลักหรือ contrib
  • หากคุณพบข้อผิดพลาดที่ถูกต้องในหลักที่ต้องได้รับการแก้ไขเส้นแบ่งระหว่าง 'แฮ็คหลัก' และ 'กลายเป็นผู้มีส่วนร่วมหลัก' นั้นดีพอ ๆ กับเพียงแค่กระจายการเปลี่ยนแปลงของคุณและอัปโหลดพวกเขาเป็นแพตช์ Viola! หลักจะดีกว่าสำหรับความพยายามของคุณและชื่อของคุณมีความเกี่ยวข้องกับการให้รหัสกลับไปที่ชุมชน

ทุกคนเป็นผู้ชนะเมื่อคุณไม่แฮ็คคอร์!


3
ไม่ใช่ว่าทุกแพตช์จะมุ่งมั่นที่จะเป็นแก่นแท้
mpdonadio

1
จริง แต่ด้วยการอัปโหลดคุณอย่างน้อยมีบันทึกของโปรแกรมแก้ไขสิ่งที่ทำอาจเป็นบางรุ่นที่ปรับปรุงโดยผู้อื่นและความสามารถในการดาวน์โหลดและนำไปใช้กับโครงการของคุณอีกครั้งหากคุณมีการปรับปรุงที่เขียนทับ การเปลี่ยนแปลงของคุณ และบ่อยครั้งก็เป็นเหตุผลว่าทำไมมันถึงไม่ได้รับข้อเสนอแนะและทางเลือกอื่น ทั้งหมดนี้ฟรี

6

ฉันกำลังทำงานบนเว็บไซต์หลักที่ถูกแฮ็ก ฉันมีปัญหาในการค้นหาว่ามีการตั้งค่าบางอย่างเรียบง่ายเหมือนแบบอักษร ฉันยังใช้เวลาสองสามวันในการแก้ไขข้อผิดพลาดที่แฮ็คหลักได้รับการแนะนำ ฉันพบมันโดยค้นหาสตริงในรหัส drupal ทั้งหมด

หากคุณไม่ปฏิบัติตามโครงสร้างมาตรฐานของการเขียนโปรแกรมใน drupal แล้วคนอื่นจะค้นหาและแก้ไขการเปลี่ยนแปลงที่คุณแนะนำได้อย่างไร โดยเฉพาะอย่างยิ่งความเจ็บปวดเพราะใน drupal ทุกไฟล์ php เดียวสามารถใช้เบ็ด ลองค้นหาว่าปัญหาใดที่ทำให้เกิดปัญหา


4
นี้. หากคุณสืบทอดไซต์ที่สร้างขึ้นบนเฟรมเวิร์กใด ๆ ที่กำหนดและจากนั้นพบว่าเฟรมเวิร์กถูกแฮ็กและเอกสารประกอบสำหรับเฟรมเวิร์กนั้นอาจไม่เกี่ยวข้องคุณอาจอยู่ในโลกแห่งความเจ็บปวด (นอกเหนือจากเหตุผลอื่น ๆ ที่กล่าวมาทั้งหมดข้างต้น ... )
Charlie Schliesser

5
พนันว่าคุณต้องการได้ยินdrupal.org/project/hackedก่อนหน้านี้หรือไม่?
Chris Burgess

ดูดีคริส ฉันจะได้ดูแน่นอน
Pawel G

ระบบควบคุมแหล่งสัญญาณที่เหมาะสมควรสามารถบอกได้ว่ามีอะไรเปลี่ยนแปลงและแสดงการปรับเปลี่ยนทั้งหมดเป็นแกนกลาง การค้นหาสตริงใน codebase ควรเป็นส่วนมาตรฐานของชุดเครื่องมือการดีบักใน php
Toby Allen

5

"ไม่มีปัญหาที่สามารถแก้ไขได้โดยการแฮกแกนเท่านั้นแล้วจะทำอย่างไรดี"

เพื่อตอบคำถามนี้ใช่มีบางครั้งคุณต้องเอาชนะนั่นหมายความว่าคุณต้องแฮ็คคอร์ (หรือโมดูล contrib)

ในกรณีนี้ฉันเชื่อว่าคุณสามารถแฮ็คได้ตราบใดที่คุณใส่ความคิดเห็นจำนวนมากในโค้ดที่ถูกแฮ็กและทำเอกสารทุกอย่างที่คุณเปลี่ยนแปลง

ตัวอย่างเช่นสำหรับการเปลี่ยนแปลงแกนหรือ contrib ใด ๆ ฉันทำให้ฉันสร้างแพทช์ หากเป็นเรื่องทั่วไปและมีประโยชน์ต่อคนอื่น ๆ ฉันส่งไปที่ drupal.org ในปัญหาไม่เช่นนั้นจะเป็นของฉันเอง

จากนั้นฉันจะส่งไฟล์ปะแก้ไปที่การควบคุมเวอร์ชันของฉันพร้อมกับการเปลี่ยนรหัส

ซึ่งหมายความว่าฉันสามารถดูได้โดยค้นหาไฟล์ปะแก้หากมีบางสิ่งถูกแฮ็ก

นอกจากนั้นฉันยังเพิ่มรายการแฮ็คไปยังเอกสารสำหรับนักพัฒนาสำหรับเว็บไซต์ (คุณควรมีเอกสารสำหรับนักพัฒนาเพื่อประโยชน์ของผู้อื่นที่อาจทำงานบนไซต์และสำหรับตัวคุณเองเมื่อคุณลืมสิ่งต่าง ๆ อย่างหลีกเลี่ยงไม่ได้)

ในเอกสารแฮ็กนี้ฉันจะแสดงรายการแฮ็คแต่ละครั้งว่าแฮ็คทำอะไรและทำไมโมดูล / ไฟล์ที่ได้รับผลกระทบชื่อไฟล์แพตช์ที่มีรหัสแฮ็กและลิงก์ไปยังปัญหา drupal.org ที่เกี่ยวข้องหากมี ในกรณีของฉันมี)

จากนั้นคุณและผู้อื่นที่ทำงานบนไซต์ในอนาคตจะมีรายการแฮ็กเต็มรูปแบบและไม่ต้องกังวลกับการทำลายบางอย่างโดยไม่ตั้งใจด้วยการอัปเดต

จากนั้นสำหรับกระบวนการอัปเดตฉันจะตรวจสอบรายการแฮ็กของฉันและดูไฟล์แพทช์อย่างรวดเร็วในโมดูลทั้งหมดที่ฉันอัปเดต หากมีแฮ็คและมีปัญหา drupal.org ฉันจะตรวจสอบปัญหาเพื่อดูว่ามีเวอร์ชั่นล่าสุดที่มีแพตช์รวมอยู่หรือไม่ในกรณีที่ฉันระเบิดแฮ็คด้วยการอัปเดตและลบออกจากรายการแฮ็กของฉัน แน่นอนว่าโดยการดูที่ drupal.org จะส่งข้อความว่าสิ่งที่ได้กระทำนั้นเหมือนกับเวอร์ชั่นของแพทช์ที่คุณใช้หรืออย่างน้อยก็ใช้เหมือนกัน)

หากแพทช์ไม่ได้ทำสิ่งที่ฉันต้องทำคืออัปเดตโมดูลและนำไปใช้ใหม่ ในหลายกรณีแพตช์จะยังคงใช้งานได้อย่างสมบูรณ์และกระบวนการนั้นง่าย แต่บางครั้งคุณต้องทำการติดตั้งแพตช์ใหม่สำหรับเวอร์ชั่นใหม่จากนั้นคอมมิทแพ็ตช์เวอร์ชั่นใหม่ไปยังพื้นที่เก็บข้อมูลในพื้นที่ของคุณ ปัญหา drupal.org หากมี)

อีกสิ่งหนึ่งที่ฉันอยากทำถ้าฉันมีแพตช์หรือแพตช์ที่มีความสำคัญมากกว่าซึ่งมีปฏิสัมพันธ์กับแกนกลาง fucntionality ของโมดูล ซึ่งหมายความว่าทุกเวอร์ชันอยู่ระหว่างเวอร์ชันปัจจุบันของคุณและเวอร์ชันที่คุณกำลังอัปเดต) และตรวจสอบให้แน่ใจว่าไม่มีสิ่งใดในนั้นที่จะทำลายรหัสของคุณ หมายเหตุ: ผู้ดูแลโมดูลหลายคนเก่งในทุกวันนี้ด้วยการให้บันทึกย่อประจำรุ่นที่สมบูรณ์ แต่ยังมีอีกมากมายที่ทำบันทึกย่อประจำรุ่นขยะ ในกรณีนี้ในบางกรณีฉันอ่านข้อความที่ส่งมอบทั้งหมดตั้งแต่เวอร์ชันปัจจุบันของฉัน (ซึ่งโดยปกติจะเป็นเฉพาะในกรณีที่ฉันมีรหัสที่ซับซ้อนซึ่งมีการโต้ตอบอย่างลึกซึ้งกับโมดูลอื่น) บันทึก:

จากนั้นหลังจากอัปเดต (บนสำเนาการพัฒนาของเว็บไซต์) ให้ทดสอบอย่างละเอียด ในที่สุดคุณจะได้เรียนรู้สิ่งที่หมายถึงอย่างละเอียดหลังจากข้อบกพร่องไม่กี่ข้อผ่าน

จากนั้นเมื่อมีการทดสอบอย่างเพียงพอให้อัปเกรดไซต์สดหรืออัปเดตภายในเครื่องของคุณหรือกระบวนการปรับใช้ของคุณอาจเป็นอะไรก็ได้

เหตุผลที่ทุกคนบอกว่าไม่ทำแม้ว่ามันจะง่ายกว่า: เพราะคนส่วนใหญ่ไม่มีระบบเหมือนที่ฉันได้อธิบายไว้ดังนั้นเมื่อถึงเวลาที่ต้องทำการอัพเดทหรือเว็บไซต์ถูกส่งให้คนอื่นทำงาน ต่อไปมันจะกลายเป็นฝันร้ายและเวลา (บางครั้งมีจำนวนมหาศาล) ต้องใช้การแก้ไขข้อบกพร่องและติดตามแฮ็กลงมาและหาสาเหตุว่าทำไมถึงอยู่ที่นั่น ฯลฯ

หากคุณสืบทอดไซต์เช่นนี้คุณจะเข้าใจอย่างถ่องแท้ :)


2

หากคุณหาเลี้ยงชีพด้วยการติดตั้งและสร้างเว็บไซต์ Drupal คุณจำเป็นต้องปรับปรุงให้ทันสมัยอยู่เสมอ หากไซต์ส่วนใหญ่ของคุณล้าสมัยอย่างมากคุณไม่ใช่มืออาชีพ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.