모든 개발자는 반드시 안전의 기본 원리를 이해해야 한다

7435 단어 security
지난주에 나는 댓글을 하나 남겼다.


좋은 답을 여러분과 나누고 싶습니다.여기 지혜가 많으니까 계속 읽어주세요.

Dian Fay
  • 아무도 믿지 마.특히 너 자신은
  • 유일하게 완전히 안전한 시스템은 연결이 끊기고 전기가 끊기며 콘크리트에 싸여 눈을 가린 헬리콥터에서 바다로 추락하는 시스템이다.
  • 네가 사용할 수 있는 모든 기능은 엉뚱한 사람이 사용할 수 있는 기능이다.시스템을 통해 액세스할 수 있는 데이터는 다른 사용자가 시스템을 통해 액세스할 수 있는 데이터입니다.뒷문은 고유의 안전 위험의 하나다.

  • Assume user input is malicious until proven otherwise .
  • 만약 당신이 자신의 암호화 소프트웨어를 내놓을 충분한 능력이 있다면 당신은 이미 암호화 소프트웨어에 전문적으로 종사하는 일을 하게 될 것이다.
  • 입력이 암호화와 같은 저장된 내용과 일치하는지 테스트하기만 하면 산열되고 암호화되지 않습니다.
  • 준비된 문장을 연결하고 검색에 파라미터를 삽입하지 마십시오.
  • 공개적으로 볼 수 있는 API가 당신의 사이트를 지원한다면remember that your site isn't the only thing that can hit it.
  • 가장자리 상황을 생각하고 테스트한다.

  • Adnan Rahić
  • 입력 데이터 확인!
  • 입력 데이터를 진지하게 검증한다.
  • 내가 입력 데이터를 검증하는 것을 언급한 적이 있습니까?

  • Donald Merand

    네가 저장한 데이터가 적을수록 그 안에 노출된 안전 위험이 적고 참여자가 안전해진다.데이터가 유용해진다는 이론에 데이터를 매점하지 마라. 필요한 것만 저장하고, 당신이 필요로 하는 상황을 만날 때마다 자신에게 물어라.
    만약 당신이 데이터, 특히 민감한 데이터를 저장해야 한다면, 절대로 순수한 텍스트로 저장하지 마세요!bcrypt와 같은 산열 알고리즘을 봐라.
    항상 참여자에게 그들의 데이터를 삭제하도록 선택하고 그들이 요구할 때 실제적으로 데이터를 삭제하도록 한다.

    edA‑qa mort‑ora‑y
  • 안전이 어렵다.각종 공격을 읽어 물품이 공격을 받는 방식의 심각성을 파악할 필요가 있다.
  • 시스템이 손상됩니다.완화 전략은 벽만큼 중요하다.
  • 시스템은 영원히 안전하지 않습니다. 당신은 안전 목표와 현재의 위험과 사용 가능한 자원 사이의 균형을 잡을 수 있습니다.
  • 프라이버시와 안전은 분리할 수 없다.네가 무책임하고 사용자에게 무관심하더라도 공격자는 할 것이다.
  • 데이터의 가치가 높아지면서 보안이 더욱 어려워집니다.대부분의 시스템이 진정으로 안전한 이유는 그들이 저장한 데이터를 진정으로 원하는 사람이 없기 때문이다.한 회사가 성공할 때 공격자가 올 것이다.
  • 안전은 이동의 목표이다.너는 영원히 안전성을 실현하지 못할 것이다.
  • 사용자 안전은 회사 안전만큼 중요하다.
  • 안전에 대해 개방적인 태도를 취하는 것이 그것이 정확하다는 것을 아는 유일한 방법이다.묵묵부답으로 안정감이 없다.
  • 모든 사람이 안전에 대해 책임을 진다.모든 사람과 모든 기계는 잠재적인 공격 캐리어이다.권장 사항:
  • 기존 라이브러리 사용
  • 모범 사례 준수
  • 최신 상태로 유지
  • 마음을 열고 질문을 한다
  • 방어 코드
  • 위험 인식

  • Alexandre Plennevaux

    외부로부터의 데이터는 항상 다음 순서로 처리됩니다.
  • 소독
  • 검증
  • 실행
  • 피드백 표시
  • 예:
    
    $errors = array();
    
    // 1. Sanitisation
    $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
    
    // 2. Validation
    if (false === filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $errors['email'] =  "Invalid email address";
    }
    
    // 3. Exécution
    if (count($errors)> 0){
        echo 'There are errors : ';
        print_r($errors);
        exit;
    }
    // At this point, all is fine, let's open the gate...
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    //...
    
    // 4. Feedback information
    

    기본으로 말하자면...




    나는 이것이 도움이 되기를 바란다.안전에 있어서 우리는 많은 구체적인 규칙을 따를 수 있지만 원칙에서 출발하는 것이 관건이다.우리는 모든 사람이 이미 기본 원리를 알고 파악했다고 가정할 수 없다.가서 너의 소프트웨어를 보호해라!

    좋은 웹페이지 즐겨찾기