답변:
Kindof. 면책 조항 : 나는 보안 사람입니다.)
제가 일하는 방식은 어떤 종류의 공격자가 어떤 종류의 공격을하는지 설명하는 내 위협 모델을 가지고 있다는 것입니다. 보안 요구 사항을 해결하는 데 도움이됩니다. 실제로 코딩 할 때는 커서 변수가 항상 범위 내에 있고, 오염 된 입력이 손상되고, 오류 조건이 처리되도록주의하는 것과 같은 일반적인 "안전한 코딩"방법을 사용합니다. 그런 다음 위협 모델로 돌아가서 어떤 모듈이 공격자에게 가장 많이 노출 될 수 있는지 확인합니다. 그것들은 약간의 추가 검토를받습니다.
SQL 매개 변수 사용과 같은 업계 표준 사례를 사용합니다. .NET Framework와 같은 "안전한"플랫폼을 사용하고 ASP.NET MVC의 위조 방지 토큰과 같은 보안 기능을 활용합니다. 필자는 자체 암호화 알고리즘을 작성하지는 않지만 해당 암호화가 보안 이점을 제공하는 방법과 이러한 보안 이점을 얻기 위해 사용해야하는 경우를 이해합니다.
간단히 말해 모범 사례를 사용하지만 자체 보안 도구를 개발하지는 않습니다. 나는 그 점에서 보안 전문가가 아닙니다. 나는 이미 이러한 문제에 대해 깊이 생각하고 위험과 이점에 대해 명확하게 이해하고있는 다른 보안 전문가에게 의지합니다.
보안 도구를 사용하는 것 이상의 보안에 대한 나의 기본 접근 방식은 내가 기대하는 것을 제외하고 시스템에 가능한 모든 입력을 제거하는 것입니다. 사회 보장 번호 필드가있는 경우 실제로 표시되어야하는 유일한 문자는 특정 패턴의 숫자와 대시입니다.
클라이언트와 서버 모두에서 사용자 입력을 확인합니다.
물론.
보안이 전부입니다. 그리고 수치 소프트웨어를 사용하면 두 배가됩니다.
얼마 전, 사용자는 이전 프로그램 중 하나에서 버그를 찾아서 악용했습니다. 피해는 돌이킬 수 없었습니다. 아래를보십시오 :

예전에는 둥글 었습니다.
나는 보안 전문가는 아니지만 웹 응용 프로그램을 코딩 할 때 항상 사용자 입력에 모든 종류의 기이함이 포함될 수 있으며 항상 완전히 탈출해야한다고 가정합니다. 또한 Ajax가 서버로 다시 전화를 걸어 사용자가 로그인했는지 (특정 이벤트에 대해 필요한 경우) 그들이하려는 일을 할 수있는 권한이 있는지 확인합니다.
코드베이스에는 입력을위한 필터 세트가 있습니다. PHP $_GET또는 $_POST배열을 직접 확인하지 않습니다 . 대신,이 기능을 통해 쿼리를 Request::get('parameter', 'filter')같은 필터 int, text그리고 몇 가지 다른. ( Request::post()물론 POST 입력의 경우)
보안의 일반 원칙 (무결성, 인증, 권한)을 이해 한 다음 사람들이 수천 년 동안 보안의 기둥을 어떻게 파괴했는지에 대한 몇 권의 책을 읽으십시오.
그런 다음 디자인 및 테스트 전략에 대한 몇 가지 좋은 책을 읽고 아키텍처에서 테스트 가능성을 디자인하는 방법을 배우십시오.
이제 보안에 대해 생각할 때가되었습니다. 데이터 소스의 유효성을 검사하는 방법에 대해 생각하고 있습니다. 데이터가 훼손된 경우, 데이터 소스가 누구인지, 얼마나 확실합니까? 어떻게 바뀌었을까요?
이것은 디자인에 영향을 미칩니다. 구성 파일에는 키 섹션이 암호화되어 있거나 특정 서명 필드와 연관된 서명 필드가있는 일반 텍스트 일 수 있습니다. 인터넷을 향한 서비스는 더 많은 적대감을 기대해야하므로 상황이 더욱 복잡해집니다.
그런 다음 테스트 할 때이 모든 것을 어떻게 테스트합니까? 최대 데이터 입력은 무엇이며 소프트웨어를 한계를 넘어 서면 어떻게됩니까? 무엇을 믿습니까? 어떻게 그 신뢰를 속일 수 있습니까?
응용 프로그램 등에 따라 개발자가 프로세스를 기반으로 구축하는 것이어야합니다. 불행히도 개발자는 보안을 인용하지 않는 경향이 있으므로 구매자는 그것을 생각하지 않습니다 ( 구매자가 가장 저렴한 견적을 원할 경우 보안이 포함되지 않기 때문에 이것은 약간의 캐치 -22입니다.
개발자로서이 분야에 숙련 된 사람이라면 확실한 이점을 얻을 수 있습니다. 특히 은행과 금융 서비스에 대해 생각하고 있지만 다른 산업에도 적용 할 수 있습니다. 현재 그들은 새로운 졸업생들이 그 조직에 대한 프로세스, 보안 및 기타 세부 사항에 대한 속도를 높이기 위해 70-100k의 예산을 책정 할 수 있습니다. 30k를 절약 할 수 있다면 좋은 CV 플러스입니다!
영국, 정보 보안 전문가 연구소 및 스코틀랜드의 보안 및 사이버 범죄 우수 센터는 대학교와 긴밀히 협력하여 강의 자료를 검토하고 실제 코딩에 대한 실제 영향에 대한 초청 강의를 제공합니다. 법 집행 기관의 사기 행위 부서에 소프트웨어 개발자를 배치했습니다.) 대부분의 지원 단체는 많은 돈을 절약 할 수있는 잠재력을 가지고 있기 때문에 무료로이 작업을 수행하고 있습니다.
(면책 조항-다양한 글로벌 조직의 보안 담당자였습니다)