|
|


22018, 1/1101 |
![]() |
![]() |
![]() |
![]() |
|
xornrbboy | ||||||
|
웹해킹의 근본적인 해결방안... | ||||||
|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=30839 [복사]
Hit : 12128 Date : 2013/05/13 08:08
|
|||||||
| ![]() |
| |
| 1. 우왕ㅋㅋㅋ 이런거 말씀하신거죠? http://stackoverflow.com/questions/8263371/how-prepared-statements-can-protect-from-sql-injection-attacks |
2013/05/14 | |
|
| dwdwzzz | 심도있는글같군요.. 왠만큼 생각하고는 떠올리기 힘든 아이디어같네요. 디비쪽을 잘 모르지만 궁금한게 쿼리를 따로 보내서 받는다는게 구현가능한가요? 그리고 처리를 따로한다면 속도가 느려지는 단점이 존재할거같은데..아닌가요? 구현이 가능하다면 어느정도 보안이 속도보다 중요시되는곳에서 쓰일수있겠지만 데이터를 따로보내는게 오히려 보안에 독이될지아닐지는 잘 모르겠군요... 2번은 실력이부족해서그런지 솔직히 잘 모르겠습니다..ㅋㅋ 그런데 이런글 올라오니 좋네요 머리쓰게되는 퍼즐같습니다. 아이디어 자주올려주세요 ㅋ |
2013/05/14 | |
| pr0sp3r | 우선 이러한 근본적 고민을 하는것은 매우 바람직합니다. 1. sql injection에 대한 근본 원인 입력데이터 미검증 과 리다이렉트 부분 위에서 말씀하신 prepared 란것이 말씀하신 인자값 다이렉트 입력을 차단해주는 솔루션중 하나입니다. 입력값 검증은 단순한 차원이 아니라서 매우 복합적인 측면이 있습니다. RDBMS에 대한 학습이 선행되어지면 이해 하실수 있는 부분이며, sql injection 최대의 적은 안일한 코딩습관입니다. (현업에서 보안코딩을 하기란 쉬운일은 아닙니다) 2. XSS 경우 말씀하신 인자값 검증으로 80%이상 막을수 있습니다. 그러나 실제 운영 중인 서비스에 이러한 제한은 사용자 편리성과 접근성을 제한하게 됩니다. 쉽게 html 에디터를 제한하거나, 이미지나 파일 첨부등 보안이슈가 발생할 만한 이슈를 모두 원천 차단시켜버리면 간단합니다. (실제로 그렇게 서비스하면 보안은 좋을지 모르나, 서비스는 망합니다) 또한 html entity, global charicset, 우회 문자열, ASCII 우회등 xss 방어기법을 우회하는 기법역시 발전합니다. 가장 쉬운 공격기법이 xss 이면서, 가장 막기 까다로운 기법역시 xss 입니다. 예를 들어 xss 공격이 가능하려면 전제조건이 html 태그를 사용가능하도록 해야되며, script를 사용할 수 있어야 합니다. 이때 필터링을 많이 사용하는데 < ,> , ' , " , % , & , #, - 등의 특수문자를 필터링 하거나 <script 문자 또는 script 문자열을 대치함으로 html 태그가 먹지 않게 하거나 스크립트실행을 방해함으로서 xss 공격을 차단하는 경우가 일반적입니다. 또는 <<plaintext> 나 <xmp> , <textarea>, <pre> 등의 태그로 입력값을 감싸서 태그를 무시하는 방법도 있습니다. 리다이렉트 프로토콜을 이용하거나, 쿠키를 이용하거나 DATA:// 프로토콜을 사용하거나 등의 다양한 방법의 xss 공격이 시도됩니다. 한가지로 쉽게 보안되었다면 보안관리자들이 필요 없었겠지요.. 계속 고민해서 많은 공부가 되시길 바랍니다. |
2013/05/17 | |
|
|