คำถามติดแท็ก security

หัวข้อที่เกี่ยวข้องกับความปลอดภัยของแอปพลิเคชันและการโจมตีซอฟต์แวร์ โปรดอย่าใช้แท็กนี้เพียงอย่างเดียวซึ่งส่งผลให้เกิดความกำกวม หากคำถามของคุณไม่เกี่ยวกับปัญหาการเขียนโปรแกรมที่เฉพาะเจาะจงโปรดลองถามคำถามที่ Information Security SE: https://security.stackexchange.com แทน

30
เครื่องมือ / กลยุทธ์. ทำให้งงงวย NET [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ผลิตภัณฑ์ของฉันมีองค์ประกอบหลายอย่าง: ASP.NET, Windows Forms App และ Windows Service รหัส 95% หรือมากกว่านั้นถูกเขียนใน VB.NET ด้วยเหตุผลด้านทรัพย์สินทางปัญญาฉันต้องทำให้งงงวยรหัสและจนถึงตอนนี้ฉันได้ใช้ dotfuscator รุ่นที่อายุ 5 ปีขึ้นไป ฉันคิดว่ามันเป็นเวลาที่จะย้ายไปที่เครื่องมือรุ่นใหม่ สิ่งที่ฉันกำลังมองหาคือรายการข้อกำหนดที่ฉันควรพิจารณาเมื่อค้นหา obfuscator ใหม่ สิ่งที่ฉันรู้ว่าฉันควรมองหาจนถึง: อันดับ / De-อนุกรม ในโซลูชันปัจจุบันของฉันฉันเพียงแค่บอกเครื่องมือไม่ให้สมาชิกคลาสข้อมูลใด ๆ ยุ่งเพราะความเจ็บปวดที่ไม่สามารถโหลดข้อมูลซึ่งต่อเนื่องกันก่อนหน้านี้มีขนาดใหญ่เกินไป บูรณาการกับกระบวนการสร้าง การทำงานกับ ASP.NET ในอดีตฉันได้พบปัญหานี้เนื่องจากการเปลี่ยนชื่อ. dll (คุณมักจะมีหนึ่งต่อหน้า) ซึ่งเครื่องมือไม่ได้ทั้งหมดจัดการได้ดี

3
จะเก็บ JWT ในเบราว์เซอร์ได้ที่ไหน จะป้องกัน CSRF ได้อย่างไร
ฉันรู้ว่าการตรวจสอบตามคุกกี้ สามารถใช้การตั้งค่า SSL และ HttpOnly เพื่อป้องกันการตรวจสอบตามคุกกี้จาก MITM และ XSS อย่างไรก็ตามจำเป็นต้องใช้มาตรการพิเศษเพิ่มเติมเพื่อป้องกันจาก CSRF พวกมันซับซ้อนเล็กน้อย ( อ้างอิง ) เมื่อเร็ว ๆ นี้ฉันค้นพบว่า JSON Web Token (JWT) ค่อนข้างร้อนในฐานะโซลูชั่นสำหรับการตรวจสอบสิทธิ์ ฉันรู้เกี่ยวกับการเข้ารหัสถอดรหัสและตรวจสอบ JWT อย่างไรก็ตามฉันไม่เข้าใจว่าทำไมบางเว็บไซต์ / บทช่วยสอนไม่จำเป็นต้องมีการป้องกัน CSRF หากใช้ JWT ฉันได้อ่านค่อนข้างมากและพยายามสรุปปัญหาด้านล่าง ฉันแค่ต้องการให้ใครบางคนสามารถให้ภาพรวมของ JWT และชี้แจงแนวคิดที่ฉันเข้าใจผิดเกี่ยวกับ JWT หาก JWT ถูกเก็บไว้ในคุกกี้ฉันคิดว่าเป็นเช่นเดียวกับการรับรองความถูกต้องที่อิงกับคุกกี้ยกเว้นว่าเซิร์ฟเวอร์ไม่จำเป็นต้องมีเซสชันเพื่อตรวจสอบคุกกี้ / โทเค็น ยังมีความเสี่ยงเกี่ยวกับ CSRF หากไม่มีมาตรการพิเศษดำเนินการ JWT ไม่ถูกจัดเก็บในคุกกี้หรือไม่? หาก JWT ถูกเก็บไว้ใน localStorage …

3
วัตถุประสงค์ของการตั้งค่า Django 'SECRET_KEY'
ประเด็นของSECRET_KEYdjango คืออะไร? ฉันค้นหา google สักสองสามครั้งและดูเอกสาร ( https://docs.djangoproject.com/en/dev/ref/settings/#secret-key ) แต่ฉันกำลังมองหาคำอธิบายเชิงลึกเพิ่มเติม และทำไมมันจำเป็นต้องใช้ ตัวอย่างเช่นจะเกิดอะไรขึ้นถ้าคีย์ถูกบุกรุก / คนอื่น ๆ รู้ว่ามันคืออะไร? ขอบคุณ.

9
โฟลเดอร์ App_Data ใช้สำหรับอะไรใน Visual Studio
เมื่อสร้างแอปพลิเคชัน ASP.NET ใหม่ใน Visual Studio ไฟล์และโฟลเดอร์สองรายการจะถูกสร้างขึ้นโดยอัตโนมัติ App_Dataหนึ่งในโฟลเดอร์เหล่านั้นเรียกว่า นอกจากนี้เมื่อเผยแพร่เว็บไซต์โดยเลือกตัวเลือกเมนู Build->PublishInclude files from the App_Data folderช่องทำเครื่องหมายใช้ได้ ฉันถูกสมมติว่าไฟล์ที่ใส่ในไฟล์นี้และโฟลเดอร์ย่อยไม่สามารถเข้าถึงผ่านเว็บได้หรือไม่? ตัวอย่างเช่นจะปลอดภัยหรือไม่ที่จะใส่ทรัพยากรโฟลเดอร์นั้นที่ฉันต้องการใช้รหัสแอปพลิเคชันเท่านั้น การใช้งานที่ตั้งใจจริงคืออะไร App_Dataโฟลเดอร์ที่คืออะไร? แก้ไข: ขอบคุณสำหรับคำตอบทั้งหมด จากคำตอบที่ได้รับจนถึงขณะนี้ฉันสนใจส่วนใหญ่ในสองจุดกล่าวถึง: App_Data เป็นจุดเก็บข้อมูลหลักสำหรับแหล่งเก็บข้อมูลแบบใช้ไฟล์ เว็บนี้ไม่ควรดูได้และเป็นที่สำหรับเว็บแอพในการจัดเก็บและอ่านข้อมูล บางคนจะสามารถระบุได้ว่าจะทำให้มั่นใจได้ว่า "ไม่สามารถดูได้ทางเว็บ"? ฉันสามารถใช้ข้อเท็จจริงนั้นเมื่อทำการปรับใช้มาตรฐานหรือฉันต้องตรวจสอบการตั้งค่า IIS บางอย่างบนเซิร์ฟเวอร์ด้วย ในสถานการณ์ที่ฉันมีไฟล์ PDF หนึ่งชุดที่ฉันต้องการให้เข้าถึงได้จากแอปพลิเคชันเท่านั้น โฟลเดอร์ App_Data จะเป็นสถานที่ที่เหมาะสมในการใช้หรือไม่ฉันควรสร้างโฟลเดอร์แยกต่างหากและตั้งค่า IIS ด้วยตนเองเพื่อให้แน่ใจว่าเว็บไม่สามารถเข้าถึงได้หรือไม่?

11
จะแปลง SecureString เป็น System.String ได้อย่างไร
การจองทั้งหมดเกี่ยวกับการรักษาความปลอดภัยของ SecureString ของคุณโดยการสร้าง System.String นอกเหนือจากมันจะทำอย่างไร? ฉันจะแปลง System.Security.SecureString สามัญเป็น System.String สามัญได้อย่างไร ฉันแน่ใจว่าพวกคุณหลายคนที่คุ้นเคยกับ SecureString จะตอบว่าไม่ควรแปลง SecureString เป็นสตริง. NET ธรรมดาเพราะมันจะเอาการป้องกันความปลอดภัยทั้งหมด ฉันรู้ว่า แต่ตอนนี้โปรแกรมของฉันทำทุกอย่างด้วยสตริงปกติอยู่แล้วและฉันพยายามปรับปรุงความปลอดภัยของมันและถึงแม้ว่าฉันจะใช้ API ที่ส่งคืน SecureString ให้ฉันฉันไม่ได้พยายามใช้สิ่งนั้นเพื่อเพิ่มความปลอดภัยของฉัน ฉันรู้เรื่อง Marshal.SecureStringToBSTR แต่ฉันไม่รู้ว่าจะใช้ BSTR นั้นอย่างไรและสร้างระบบออกมา สำหรับผู้ที่อาจต้องการทราบว่าทำไมฉันต้องการทำเช่นนี้ดีฉันใช้รหัสผ่านจากผู้ใช้และส่งเป็นแบบฟอร์ม POST แบบ HTML เพื่อบันทึกผู้ใช้ลงในเว็บไซต์ ดังนั้น ... สิ่งนี้จะต้องมีการจัดการบัฟเฟอร์ที่ไม่ได้เข้ารหัส หากฉันสามารถเข้าถึงบัฟเฟอร์ที่ไม่ได้รับการจัดการฉันจินตนาการว่าฉันสามารถทำการสตรีมไบต์ต่อไบต์ที่เขียนบนสตรีมเครือข่ายและหวังว่าจะช่วยให้รหัสผ่านปลอดภัยตลอดทาง ฉันหวังว่าจะได้คำตอบสำหรับสถานการณ์เหล่านี้อย่างน้อยหนึ่งสถานการณ์
156 c#  .net  security  encryption 

5
แปลง. pfx เป็น .cer
เป็นไปได้ไหมที่จะแปลงไฟล์. pfx (การแลกเปลี่ยนข้อมูลส่วนบุคคล) ไปเป็นไฟล์. cer (ใบรับรองความปลอดภัย) เว้นแต่ว่าฉันเข้าใจผิดจะไม่. ฝังตัวอยู่ภายใน. pfx อย่างใด? ฉันต้องการสกัดบางวิธีถ้าเป็นไปได้

1
ผู้ให้บริการ JACC สามารถใช้สิ่งอำนวยความสะดวกการทำแผนที่หลักตามบทบาทของเซิร์ฟเวอร์ที่ใช้งานได้อย่างไร
ฉันกำลังเขียนJACCผู้ให้บริการ PolicyConfigurationไปตามทางที่นี้หมายถึงการดำเนินการ PolicyConfigurationเป็นผู้รับผิดชอบในการรับข้อมูลการกำหนดค่าจากเซิร์ฟเวอร์แอพลิเคชันเช่นสิทธิ์เกิดขึ้นที่มีบทบาทสำคัญ นี่คือเพื่อให้ในPolicyภายหลังสามารถตัดสินใจอนุญาตเมื่อมอบข้อมูลเกี่ยวกับผู้ใช้ปัจจุบันและสิ่งที่เขาพยายามทำ อย่างไรก็ตามมันไม่ได้เป็นส่วนหนึ่งของสัญญาPolicyConfigurationของ (atrocious) เพื่อรักษาการแมประหว่างบทบาทและสิทธิ์ของพวกเขาและPrincipalsที่ได้รับมอบหมายให้กับบทบาทเหล่านั้น โดยทั่วไป - แอปพลิเคชันเซิร์ฟเวอร์จะจับคู่การทำแผนที่นี้เสมอ ตัวอย่างเช่นใน Glassfish คุณส่งผลกระทบต่อการทำแผนที่นี้โดยการจัดหาสิ่งที่ชอบsun-web.xmlและsun-ejb-jar.xmlและอื่น ๆ ที่มีโมดูล Java EE ของคุณ (ไฟล์เฉพาะผู้จัดจำหน่ายเหล่านี้มีความรับผิดชอบในการพูดเช่นsuperusersเป็นกลุ่มที่จะได้รับการกำหนดบทบาทของแอปพลิเคชันของadmins) ฉันต้องการใช้ฟังก์ชันการทำงานที่ไฟล์เหล่านี้นำมาใช้ซ้ำและฉันต้องการทำเช่นนั้นเพื่อให้แอปพลิเคชันเซิร์ฟเวอร์มีความหลากหลายมากที่สุด นี่คือ - ทั้งหมดโดยพลการ - ของไอบีเอ็มใช้เวลาในเรื่องนี้ซึ่งปรากฏขึ้นเพื่อยืนยันความสงสัยของฉันว่าสิ่งที่ฉันต้องการจะทำคือไปไม่ได้เป็นหลัก (กระสุนเพิ่มเติมสำหรับกรณีของฉันที่สัญญา Java EE เฉพาะนี้ไม่คุ้มกับกระดาษที่พิมพ์บน) คำถามของฉัน:ฉันจะได้รับข้อมูลการทำแผนที่บทบาทหลักนี้ได้อย่างไร - สำหรับผู้เริ่มต้น - Glassfish และ JBoss จากภายในPolicyConfiguration? หากมีวิธีมาตรฐานในการทำที่ฉันไม่ทราบว่าฉันหูทั้งหมด

10
วิธีที่ดีที่สุดสำหรับการใช้งาน 'ลืมรหัสผ่าน'? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันกำลังมองหาวิธีที่ดีที่สุดในการใช้งานคุณสมบัติ "ลืมรหัสผ่าน" ฉันออกมาพร้อมกับ 2 แนวคิด: เมื่อผู้ใช้คลิกที่ลืมรหัสผ่านผู้ใช้จะต้องป้อนชื่อผู้ใช้อีเมลและวันเดือนปีเกิดหรือนามสกุล จากนั้นอีเมลที่มีรหัสผ่านชั่วคราวจะถูกส่งไปยังบัญชีอีเมลผู้ใช้ ผู้ใช้ใช้รหัสผ่านชั่วคราวเพื่อเข้าสู่ระบบและรีเซ็ตรหัสผ่านของเขา คล้ายกัน แต่อีเมลจะมีลิงค์สำหรับให้ผู้ใช้รีเซ็ตรหัสผ่านของเขา หรือใครก็ตามสามารถแนะนำฉันได้ดีกว่าและปลอดภัยกว่า? ฉันกำลังคิดที่จะส่งรหัสผ่านชั่วคราวหรือลิงก์บังคับให้ผู้ใช้รีเซ็ตรหัสผ่านภายใน 24 ชั่วโมงมิฉะนั้นรหัสผ่านหรือลิงก์ชั่วคราวจะไม่สามารถใช้งานได้ ทำอย่างไร

13
แฮชที่เร็วที่สุดสำหรับการใช้ที่ไม่ใช่การเข้ารหัส?
ฉันกำลังเตรียมวลีที่จะใส่ลงในฐานข้อมูลพวกเขาอาจมีรูปแบบไม่ถูกต้องดังนั้นฉันต้องการเก็บแฮชสั้น ๆ ของพวกเขาแทน (ฉันจะเปรียบเทียบง่ายๆถ้ามีหรือไม่มีแฮชจึงเหมาะ) ฉันคิดว่า MD5 นั้นค่อนข้างช้าสำหรับคำร้องขอมากกว่า 100,000+ คำขอดังนั้นฉันจึงอยากรู้ว่าอะไรจะเป็นวิธีที่ดีที่สุดในการแฮชวลีบางทีอาจจะเปิดตัวฟังก์ชันแฮชของตัวเองหรือการใช้hash('md4', '...'จะเร็วขึ้นในท้ายที่สุด ฉันรู้ว่า MySQL มี MD5 () เพื่อที่จะเติมเต็มความเร็วเล็กน้อยในการสิ้นสุดการสืบค้น แต่อาจจะมีฟังก์ชั่นการแฮ็ชที่เร็วขึ้นใน MySQL ฉันไม่ทราบว่าจะทำงานกับ PHP ได้หรือไม่
154 php  database  security  hash 

16
การตอบโต้ของ Brute Force ที่ดีที่สุดคืออะไร
ข้อแรกพื้นหลังเล็กน้อย: มันไม่มีความลับที่ฉันใช้ระบบ auth + auth สำหรับ CodeIgniter และจนถึงตอนนี้ฉันก็ชนะ (ดังนั้นพูด) แต่ผมเคยทำงานเป็นความท้าทายที่สวยไม่น่ารำคาญ (หนึ่งที่มากที่สุดห้องสมุดรับรองความถูกต้องพลาดทั้งหมด แต่ผมยืนยันในการจัดการอย่างถูกต้อง): วิธีการจัดการอย่างชาญฉลาดที่มีขนาดใหญ่กระจายตัวแปรชื่อผู้โจมตีแรงเดรัจฉาน ฉันรู้ทุกเทคนิคปกติ: การ จำกัด จำนวน # ของความพยายามที่ล้มเหลวต่อ IP / โฮสต์และปฏิเสธการเข้าถึงผู้กระทำผิด (เช่น Fail2Ban) - ซึ่งไม่ทำงานอีกต่อไปเนื่องจาก botnets เติบโตอย่างชาญฉลาด การรวมรายการด้านบนกับบัญชีดำของ IP / โฮสต์ที่รู้จัก 'ไม่ดี' (เช่น DenyHosts) - ซึ่งขึ้นอยู่กับ botnets ที่ล้มลงในอันดับที่ 1 ซึ่งพวกเขาไม่ทำมากขึ้น รายการ IP / โฮสต์ที่รวมกับการรับรองความถูกต้องแบบดั้งเดิม (ไร้ประโยชน์เศร้ากับผู้ใช้ IP แบบไดนามิกและปั่นป่วนสูงในเว็บไซต์ส่วนใหญ่) การตั้งค่าจำกัด sitewideในจำนวน …

5
กล่องกาเครื่องหมายนี้ทำงานซ้ำได้อย่างไรและฉันจะใช้ได้อย่างไร
ฉันเพิ่งสมัครใช้งานเว็บไซต์ oneplusone https://account.oneplus.net/sign-upและสังเกตว่ากล่องกาเครื่องหมาย recaptcha นี้ มันทำงานอย่างไรและฉันจะใช้มันในเว็บไซต์ของฉันได้อย่างไร ดีกว่าคำ / ตัวเลขลับ ๆ :) ไซต์ recaptcha ไม่ได้กล่าวถึงวิธีการ recaptcha ใหม่ใด ๆ ... https://www.google.com/recaptcha/intro/index.html

1
JSON Hijacking ยังคงมีปัญหาในเบราว์เซอร์รุ่นใหม่หรือไม่?
ฉันใช้ Backbone.js และเว็บเซิร์ฟเวอร์ Tornado พฤติกรรมมาตรฐานสำหรับการรับข้อมูลการเก็บรวบรวมใน Backbone คือการส่งเป็นอาร์เรย์ JSON ในทางกลับกันพฤติกรรมมาตรฐานของ Tornado คือไม่อนุญาตให้ใช้ JSON Array เนื่องจากมีช่องโหว่ดังต่อไปนี้: http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx สิ่งที่เกี่ยวข้องคือ: http://haacked.com/archive/2009/06/25/json-hijacking.aspx รู้สึกเป็นธรรมชาติมากขึ้นสำหรับฉันที่จะไม่ต้องห่อ JSON ของฉันไว้ในวัตถุเมื่อเป็นรายการของวัตถุจริงๆ ฉันไม่สามารถทำซ้ำการโจมตีเหล่านี้ในเบราว์เซอร์ที่ทันสมัย ​​(เช่นปัจจุบัน Chrome, Firefox, Safari และ IE9) ในเวลาเดียวกันฉันไม่สามารถยืนยันได้ทุกที่ว่าเบราว์เซอร์ที่ทันสมัยได้แก้ไขปัญหาเหล่านี้แล้ว เพื่อให้แน่ใจว่าฉันเข้าใจผิดไม่ว่าจะเป็นทักษะการเขียนโปรแกรมที่ไม่ดีหรือทักษะ googling ที่ไม่ดี: JSON Hijacking โจมตีเหล่านี้ยังคงมีปัญหาในเบราว์เซอร์ที่ทันสมัยหรือไม่? (หมายเหตุ: ขออภัยในความซ้ำซ้อนที่อาจเกิดขึ้นกับ: เป็นไปได้ที่จะทำ 'JSON hijacking' ในเบราว์เซอร์สมัยใหม่หรือไม่ แต่เนื่องจากคำตอบที่ยอมรับดูเหมือนจะไม่ตอบคำถาม - ฉันคิดว่าถึงเวลาต้องถามอีกครั้ง .)

5
ทำไมรหัสนี้มีความเสี่ยงที่จะบัฟเฟอร์การโจมตีล้น?
int func(char* str) { char buffer[100]; unsigned short len = strlen(str); if(len >= 100) { return (-1); } strncpy(buffer,str,strlen(str)); return 0; } รหัสนี้มีความเสี่ยงต่อการโจมตีแบบ buffer overflow และฉันพยายามหาสาเหตุ ฉันคิดว่ามันเกี่ยวกับlenการได้รับการประกาศshortแทนที่จะเป็นintแต่ฉันไม่แน่ใจจริงๆ ความคิดใด ๆ


30
การเข้าถึงถูกปฏิเสธเมื่อติดฐานข้อมูล
ฉันใช้รุ่นผู้พัฒนา SQL Server 2008 ฉันพยายามแนบฐานข้อมูล AdventureWorks2008 เมื่อฉันพยายามแนบฉันได้รับข้อผิดพลาด "การเข้าถึงถูกปฏิเสธ" ตามบันทึกเหตุการณ์มันมาจาก O / S: เปิดล้มเหลว: ไม่สามารถเปิดไฟล์ D: \ ProjectData \ AdventureWorks \ AdventureWorksLT2008_Data.mdf สำหรับไฟล์หมายเลข 0 ข้อผิดพลาด OS: 5 (ปฏิเสธการเข้าถึง) ฉันคิดว่า "ปัญหา NTFS" แต่ระบบ (และฉัน) มีการแก้ไขการเข้าถึงไฟล์ทั้งสอง ฉันพบว่าฉันสามารถแนบฐานข้อมูลได้สำเร็จถ้าฉันลงชื่อเข้าใช้ด้วยชื่อ sa แต่บัญชีผู้ใช้ของฉันไม่ทำงาน ฉันเป็นสมาชิกของกลุ่มผู้ดูแลท้องถิ่นบนเครื่องของฉันและฉันอยู่ในบทบาท sysadmins ในอินสแตนซ์ของ SQL Server คิดว่าทำไมฉันต้องเข้าสู่ระบบในฐานะ sa?

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