CI 프레임 워 크 의 안전성 분석

본 고 는 CI 구조의 안전성 을 분석 했다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
ci 프레임 워 크 를 사용 한 사람 은 모두 ci 프레임 워 크 가 당신 의 코드 를 크게 단축 시 킬 수 있다 는 것 을 알 고 있 습 니 다.사실 ci 프레임 워 크 는 사이트 의 안전성 을 더욱 높 일 수 있 습 니 다.
데이터베이스 공격 방지
데이터 입력 은 많은 문 제 를 일 으 킬 수 있다.HTML 과 데이터 뱅 크 의 제한 으로 인해 데이터 에는 특정한 기호 가 포함 되 어 있 습 니 다.예 를 들 어 기호 와 따옴표 를 생략 하면 데이터 베 이 스 를 공격 할 수 있 고 결국은 예측 할 수 없 는 결 과 를 얻 을 수 있 습 니 다.
해결 방안 은 이 데 이 터 를 데이터베이스 에 저장 하기 전에 이 데 이 터 를 관련 처리 하 는 것 이다.이렇게 하면 시스템 시간 을 낭비 하고 추가 인 코딩 을 추가 할 수 있다.
CI 의 폼 보조 함 수 는 자동 으로 이 작업 을 완성 합 니 다.따라서 입력 상 자 를 만 들 때:

echo form_input('username', 'johndoe');

CI 도 다음 검사 함 수 를 암시 적 으로 실행 합 니 다.

function form_prep($str = '')
{
  if ($str === '')
  {
    return '';
  }
  $temp = '__TEMP_AMPERSANDS__';
  // Replace entities to temporary markers so that
  // htmlspecialchars won't mess them up
  $str = preg_replace("/&#(\d+);/", "$temp\\1;", $str);
  $str = preg_replace("/&(\w+);/", "$temp\\1;", $str);
  $str = htmlspecialchars($str);
  // In case htmlspecialchars misses these.
  $str = str_replace(array("'", '"'), array("'", """), $str);
  // Decode the temp markers back to entities
  $str = preg_replace("/$temp(\d+);/","&#\\1;",$str);
  $str = preg_replace("/$temp(\w+);/","&\\1;",$str);
  return $str;
}

이 함수 들 은 페이지 를 제출 할 때 혼 란 스 럽 지 않도록'&'와 같은 특수 문 자 를 캡 처 합 니 다.너 는 어떤 문자 들 이 문 제 를 일 으 킬 수 있다 는 것 을 알 아야 한다.
모든 사용자 가 요구 에 맞 는 정 보 를 정직하게 입력 하 는 것 은 아니다.브 라 우 저 를 사용 하여 정 보 를 입력 하 는 사람 이 누구 인지,그들 이 무엇 을 생각 하고 무엇 을 하 는 지 알 수 없다.요구 에 부합 되 지 않 는 정 보 를 입력 하지 않도록 CI 를 사용 할 수 있 습 니 다.물론 CI 가 어떻게 막후 에서 당신 을 위해 이 모든 것 을 해 주 었 는 지 알 필요 가 없습니다.다음 코드 만 간단하게 입력 하 십시오.

echo form_input('username', 'johndoe');

더 많은 CodeIgniter 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,,,,,codeigniter 입문 강좌,CI(CodeIgniter)프레임 워 크 진급 강좌
본 고 에서 말 한 것 이 여러분 이 CodeIgniter 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기