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

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

14
ทำไมคนเราจะละเว้นแท็กปิด?
ฉันอ่านต่อไปมันเป็นวิธีปฏิบัติที่ไม่ดีในการใช้แท็กปิด PHP ?>ที่ท้ายไฟล์ ปัญหาส่วนหัวดูเหมือนไม่เกี่ยวข้องในบริบทต่อไปนี้ (และนี่เป็นอาร์กิวเมนต์ที่ดีเพียงอย่างเดียวจนถึงตอนนี้): PHP เวอร์ชันโมเดิร์นตั้งค่าสถานะ output_buffering ใน php.ini หากเปิดใช้งานการบัฟเฟอร์เอาต์พุตคุณสามารถตั้งค่าส่วนหัว HTTP และคุกกี้หลังจากเอาท์พุท HTML ได้เนื่องจากโค้ดส่งคืนจะไม่ถูกส่งไปยังเบราว์เซอร์ทันที หนังสือฝึกหัดและ wiki ที่ดีทุกเล่มเริ่มต้นด้วย 'กฎ' นี้ แต่ไม่มีใครเสนอเหตุผลที่ดี มีอีกเหตุผลที่ดีที่จะข้ามแท็ก PHP สิ้นสุดหรือไม่

15
วิธีสร้างไฟล์. pfx จากใบรับรองและคีย์ส่วนตัว
ฉันต้องการไฟล์. pfx เพื่อติดตั้ง https บนเว็บไซต์บน IIS ฉันมีสองไฟล์แยกกัน: ใบรับรอง (.cer หรือ pem) และไพรเวตคีย์ (.crt) แต่ IIS ยอมรับเฉพาะไฟล์. pfx ฉันติดตั้งใบรับรองชัดเจนและมีอยู่ในตัวจัดการใบรับรอง (mmc) แต่เมื่อฉันเลือกตัวช่วยสร้างการส่งออกใบรับรองฉันไม่สามารถเลือกรูปแบบ PFX (เป็นสีเทา) มีเครื่องมือในการทำเช่นนั้นหรือตัวอย่าง C # ของการทำโปรแกรมนั้นหรือไม่?

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

8
พอร์ต HTTP ของคุกกี้นั้นเฉพาะเจาะจงหรือไม่
ฉันมีบริการ HTTP สองบริการที่ทำงานในเครื่องเดียว ฉันแค่อยากรู้ว่าพวกเขาแบ่งปันคุกกี้หรือไม่หรือเบราว์เซอร์แยกความแตกต่างระหว่างซ็อกเก็ตเซิร์ฟเวอร์ทั้งสองหรือไม่
355 security  http  cookies 

11
การใช้ openssl เพื่อรับใบรับรองจากเซิร์ฟเวอร์
ฉันพยายามรับใบรับรองของเซิร์ฟเวอร์ระยะไกลซึ่งฉันสามารถใช้เพื่อเพิ่มไปยังที่เก็บคีย์ของฉันและใช้ภายในแอ็พพลิเคชัน java ของฉัน นักพัฒนาอาวุโส (ผู้ที่อยู่ในช่วงวันหยุด :() แจ้งให้ฉันทราบว่าฉันสามารถเปิดใช้งานได้: openssl s_client -connect host.host:9999 หากต้องการรับใบรับรองดิบทิ้งซึ่งฉันสามารถคัดลอกและส่งออกได้ ฉันได้รับผลลัพธ์ต่อไปนี้: depth=1 /C=NZ/ST=Test State or Province/O=Organization Name/OU=Organizational Unit Name/CN=Test CA verify error:num=19:self signed certificate in certificate chain verify return:0 23177:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1086:SSL alert number 40 23177:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188: ฉันได้ลองกับตัวเลือกนี้แล้ว -showcerts และอันนี้ (ทำงานบนเดเบียนใจคุณ) -CApath /etc/ssl/certs/ แต่ได้รับข้อผิดพลาดเดียวกัน …

14
เหตุใดฉันจึงได้รับปัญหา“ โหลดเนื้อหาแบบผสมที่แอคทีฟ” ใน Firefox
เช้านี้เมื่ออัปเกรดเบราว์เซอร์ Firefox เป็นเวอร์ชันล่าสุด (จาก 22 ถึง 23) บางประเด็นสำคัญของ back office ของฉัน (เว็บไซต์) หยุดทำงาน ดูที่บันทึก Firebug มีรายงานข้อผิดพลาดต่อไปนี้: Blocked loading mixed active content "http://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css" Blocked loading mixed active content "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"` ท่ามกลางข้อผิดพลาดอื่น ๆ ที่เกิดจากหลังของทั้งสองข้างต้นไม่ได้ถูกโหลด หมายถึงอะไรข้างต้นและฉันจะแก้ไขได้อย่างไร

30
เตรียมสถานะในทางเลือกข้อ?
วิธีแก้ไขปัญหาที่ดีที่สุดสำหรับการใช้ส่วนINคำสั่งSQL กับอินสแตนซ์java.sql.PreparedStatementซึ่งไม่ได้รับการสนับสนุนสำหรับค่าหลายค่าเนื่องจากปัญหาด้านความปลอดภัยในการโจมตี SQL injection: ?ตัวยึดตำแหน่งหนึ่งแทนค่าหนึ่งค่าแทนที่จะเป็นรายการค่า พิจารณาคำสั่ง SQL ต่อไปนี้: SELECT my_column FROM my_table where search_column IN (?) การใช้preparedStatement.setString( 1, "'A', 'B', 'C'" );นั้นเป็นความพยายามที่ไม่ทำงานในการแก้ปัญหาของเหตุผล?ในการใช้งานตั้งแต่แรก มีวิธีแก้ไขปัญหาอะไรบ้าง

30
วิธีการของ CAPTCHA ที่ไม่ใช่รูปภาพในทางปฏิบัติ
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ดูเหมือนว่าเราจะเพิ่มการสนับสนุนCAPTCHAใน Stack Overflow นี่เป็นสิ่งจำเป็นเพื่อป้องกันบ็อตผู้ส่งอีเมลขยะและกิจกรรมอื่น ๆ ที่เป็นอันตรายของสคริปต์ เราแค่ต้องการให้มนุษย์โพสต์หรือแก้ไขสิ่งต่าง ๆ ที่นี่! เราจะใช้ JavaScript (jQuery) CAPTCHA เป็นแนวป้องกันแรก: http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHAs ข้อดีของวิธีนี้คือสำหรับคนส่วนใหญ่ CAPTCHA จะไม่ปรากฏให้เห็น! อย่างไรก็ตามสำหรับผู้ที่ปิดการใช้งาน JavaScript เรายังคงต้องการทางเลือกและนี่คือสิ่งที่มันจะยุ่งยาก ฉันได้เขียนตัวควบคุม CAPTCHA แบบดั้งเดิมสำหรับ ASP.NETซึ่งเราสามารถนำกลับมาใช้ใหม่ได้ อย่างไรก็ตามฉันต้องการไปกับสิ่งที่เป็นข้อความเพื่อหลีกเลี่ยงค่าใช้จ่ายในการสร้างอิมเมจเหล่านี้ทั้งหมดบนเซิร์ฟเวอร์ด้วยการร้องขอแต่ละครั้ง ฉันเคยเห็นสิ่งต่าง ๆ เช่น .. ข้อความ captcha ASCII: \/\/(_)\/\/ ปริศนาคณิตศาสตร์: อะไรคือ 7 ลบ 3 คูณ 2 คำถามเรื่องไม่สำคัญ: สิ่งที่รสนิยมดีกว่าคางคกหรือไอติม? บางทีฉันอาจกำลังเอียงกังหันลมอยู่ที่นี่ แต่ฉันต้องการให้<noscript>CAPTCHA ใช้งานร่วมกันได้กับทรัพยากรที่น้อยกว่าและไม่ใช่รูปภาพหากเป็นไปได้ …

3
แนวทางปฏิบัติที่ดีที่สุดของ SPA สำหรับการรับรองความถูกต้องและการจัดการเซสชัน
เมื่อสร้างแอพพลิเคชั่นสไตล์ SPA โดยใช้เฟรมเวิร์กเช่น Angular, Ember, React เป็นต้นคนใดที่เชื่อว่าเป็นแนวปฏิบัติที่ดีที่สุดสำหรับการพิสูจน์ตัวตนและการจัดการเซสชัน ฉันสามารถนึกถึงวิธีการพิจารณาเข้าใกล้ปัญหา ถือว่าไม่แตกต่างจากการรับรองความถูกต้องด้วยเว็บแอปพลิเคชันทั่วไปโดยสมมติว่า API และ UI มีโดเมนต้นทางเดียวกัน สิ่งนี้น่าจะเกี่ยวข้องกับการมีคุกกี้เซสชันที่เก็บข้อมูลเซสชันฝั่งเซิร์ฟเวอร์และอาจเป็นจุดสิ้นสุด API เซสชันที่เว็บรับรองความถูกต้องของ UI สามารถรับข้อมูลผู้ใช้ปัจจุบันเพื่อช่วยในการกำหนดค่าส่วนบุคคลหรืออาจกำหนดบทบาท / ความสามารถในฝั่งไคลเอ็นต์ เซิร์ฟเวอร์จะยังคงบังคับใช้กฎที่ป้องกันการเข้าถึงข้อมูลแน่นอน UI จะใช้ข้อมูลนี้เพื่อกำหนดประสบการณ์เอง ปฏิบัติต่อเหมือนลูกค้าบุคคลที่สามใด ๆ ที่ใช้ API สาธารณะและรับรองความถูกต้องกับระบบโทเค็นบางประเภทที่คล้ายกับ OAuth กลไกโทเค็นนี้จะใช้โดย UI ไคลเอนต์เพื่อรับรองความถูกต้องของทุกคำขอที่ทำกับเซิร์ฟเวอร์ API ฉันไม่ใช่ผู้เชี่ยวชาญมากนักที่นี่ แต่ # 1 ดูเหมือนจะเพียงพอสำหรับกรณีส่วนใหญ่ แต่ฉันอยากได้ยินความเห็นที่มีประสบการณ์มากกว่านี้

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

25
วิธีเปลี่ยนเส้นทางคำขอ HTTP ทั้งหมดไปยัง HTTPS
ฉันพยายามเปลี่ยนเส้นทางคำขอ HTTP ที่ไม่ปลอดภัยทั้งหมดบนเว็บไซต์ของฉัน (เช่นhttp://www.example.com) ไปยัง HTTPS ( https://www.example.com) ฉันใช้ PHP btw ฉันสามารถทำได้ใน. htaccess หรือไม่

16
รหัสผ่าน“ การแฮ็ชสองเท่า” นั้นมีความปลอดภัยน้อยกว่าแค่เพียงครั้งเดียวหรือไม่
การแฮชรหัสผ่านสองครั้งก่อนที่จะจัดเก็บข้อมูลมีความปลอดภัยมากกว่าหรือน้อยกว่าเพียงแค่ทำการแฮชรหัสครั้งเดียวหรือไม่? สิ่งที่ฉันกำลังพูดถึงคือการทำสิ่งนี้: $hashed_password = hash(hash($plaintext_password)); แทนที่จะเป็นแค่นี้: $hashed_password = hash($plaintext_password); หากมีความปลอดภัยน้อยกว่าคุณสามารถให้คำอธิบายที่ดี (หรือลิงค์ไปยังหนึ่ง) ได้หรือไม่? ฟังก์ชั่นแฮชใช้เพื่อสร้างความแตกต่างหรือไม่? มันสร้างความแตกต่างหรือไม่ถ้าคุณผสม md5 และ sha1 (ตัวอย่าง) แทนที่จะทำซ้ำฟังก์ชันแฮชเดียวกัน หมายเหตุ 1: เมื่อฉันพูดว่า "การแฮ็กสองครั้ง" ฉันกำลังพูดถึงการแฮชรหัสผ่านสองครั้งเพื่อพยายามทำให้มันถูกบดบังมากขึ้น ฉันไม่ได้พูดเกี่ยวกับเทคนิคในการแก้ไขปัญหาการชนกัน หมายเหตุ 2: ฉันรู้ว่าฉันต้องเพิ่มเกลือแบบสุ่มเพื่อให้ปลอดภัยจริงๆ คำถามคือว่า hashing สองครั้งด้วยอัลกอริทึมเดียวกันช่วยหรือเจ็บกัญชา

4
ทำไมการใส่โทเค็นการป้องกัน CSRF ลงในคุกกี้จึงเป็นเรื่องปกติ
ฉันพยายามเข้าใจปัญหาทั้งหมดด้วย CSRF และวิธีที่เหมาะสมในการป้องกัน (ทรัพยากรที่ฉันได้อ่านทำความเข้าใจและเห็นด้วยกับ: OWASP CSRF ป้องกันแผ่นโกง , คำถามเกี่ยวกับ CSRF .) ตามที่ฉันเข้าใจแล้วช่องโหว่รอบ ๆ CSRF ถูกนำเสนอโดยการสันนิษฐานว่า (จากมุมมองของเว็บเซิร์ฟเวอร์) คุกกี้เซสชันที่ถูกต้องในคำขอ HTTP ขาเข้าที่สะท้อนถึงความต้องการของผู้ใช้ที่ผ่านการรับรองความถูกต้อง แต่คุกกี้ทั้งหมดสำหรับโดเมนต้นทางนั้นแนบมากับเบราว์เซอร์อย่างน่าอัศจรรย์ดังนั้นจริงๆแล้วเซิร์ฟเวอร์ทั้งหมดสามารถอนุมานจากการมีคุกกี้เซสชันที่ถูกต้องในคำขอคือคำขอนั้นมาจากเบราว์เซอร์ที่มีเซสชันที่มีการรับรองความถูกต้อง มันไม่สามารถคิดอะไรเกี่ยวกับรหัสได้อีกใช้งานในเบราว์เซอร์นั้นหรือไม่ว่ามันจะสะท้อนถึงความต้องการของผู้ใช้จริงหรือไม่ วิธีการป้องกันสิ่งนี้คือการรวมข้อมูลการรับรองความถูกต้องเพิ่มเติม ("โทเค็น CSRF") ในคำขอซึ่งดำเนินการด้วยวิธีการอื่นนอกเหนือจากการจัดการคุกกี้อัตโนมัติของเบราว์เซอร์ คุกกี้เซสชั่นรับรองความถูกต้องของผู้ใช้ / เบราว์เซอร์และโทเค็น CSRF รับรองความถูกต้องของรหัสที่ทำงานในเบราว์เซอร์ ดังนั้นหากคุณใช้คุกกี้เซสชันเพื่อตรวจสอบสิทธิ์ผู้ใช้แอปพลิเคชันเว็บของคุณคุณควรเพิ่มโทเค็น CSRF ในการตอบกลับแต่ละครั้งและต้องการโทเค็น CSRF ที่ตรงกันในแต่ละคำขอ (กลายพันธุ์) จากนั้นโทเค็น CSRF จะทำการส่งไปกลับจากเซิร์ฟเวอร์หนึ่งไปยังเบราว์เซอร์กลับไปที่เซิร์ฟเวอร์เพื่อพิสูจน์ว่าเซิร์ฟเวอร์ที่หน้านั้นร้องขอนั้นได้รับการอนุมัติจาก (สร้างโดย, แม้แต่) เซิร์ฟเวอร์นั้น ตามคำถามของฉันซึ่งเกี่ยวกับวิธีการขนส่งเฉพาะที่ใช้สำหรับโทเค็น CSRF นั้นในการไปกลับนั้น ดูเหมือนเป็นเรื่องธรรมดา (เช่นในAngularJS , Django , …
284 security  cookies  web  csrf  owasp 

1
บัญชีผู้ใช้ทั้งหมดสำหรับ IIS / ASP.NET คืออะไรและแตกต่างกันอย่างไร
ภายใต้ Windows Server 2008 ที่ติดตั้ง ASP.NET 4.0 มีบัญชีผู้ใช้ที่เกี่ยวข้องทั้งหมดถูกฆ่าและฉันไม่สามารถเข้าใจได้ว่าบัญชีใดที่พวกเขาแตกต่างกันอย่างไรและบัญชีใดที่แอพนั้นทำงานอยู่ นี่คือรายการ: IIS_IUSRS IUSR DefaultAppPool ASP.NET v4.0 NETWORK_SERVICE บริการท้องถิ่น อะไรคืออะไร?

27
GET หรือ POST ปลอดภัยกว่าอีกหรือไม่
เมื่อเปรียบเทียบ HTTP GET กับ HTTP POST ความแตกต่างจากมุมมองด้านความปลอดภัยคืออะไร ตัวเลือกหนึ่งมีความปลอดภัยมากกว่าตัวเลือกอื่นหรือไม่ ถ้าเป็นเช่นนั้นทำไม ฉันรู้ว่า POST ไม่เปิดเผยข้อมูลเกี่ยวกับ URL แต่มีคุณค่าที่แท้จริงในนั้นหรือเป็นเพียงความปลอดภัยผ่านความสับสน? มีเหตุผลใดบ้างที่ฉันควรเลือก POST เมื่อคำนึงถึงความปลอดภัย? แก้ไข: HTTPS มีการเข้ารหัสข้อมูล POST แต่บุคคลที่สามสามารถดมกลิ่น URL ได้หรือไม่ นอกจากนี้ฉันกำลังติดต่อกับ JSP; เมื่อใช้ JSP หรือเฟรมเวิร์กที่คล้ายกันมันจะยุติธรรมหรือไม่ที่จะบอกว่าวิธีปฏิบัติที่ดีที่สุดคือการหลีกเลี่ยงการวางข้อมูลที่สำคัญใน POST หรือ GET ทั้งหมดและใช้โค้ดฝั่งเซิร์ฟเวอร์เพื่อจัดการข้อมูลที่ละเอียดอ่อนแทน?
282 html  security  http 

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