2016-11-01 7 views
0

PHP로 업로드 된 파일이 db에 잠겨 있는지 확인하고 싶습니다. 현재 내가 사용하고있는 핵심 기능은 fopen과 fgetcsv입니다. 불행하게도이 주제는 웹에서 꽤 불투명 한 것처럼 보입니다.php csv 파일 업로드 및 구문 분석 보안

파일은 "실행"되지 않지만 fgetcsv를 사용하여 열었습니다. 이 모듈을 통해 서버에서 파울 플레이가 발생하지 않도록하려면 어떤 단계를 수행해야합니까?

현재 파일 크기를 제한하고 확장자를 확인합니다.

  1. 업로드 된 파일이 실제로 csv 확장명을 가진 일부 파일뿐만 아니라 csv인지 확인해야합니까? 이 파일 형식 인식기를 통해 것이라고 가정합니까?
  2. 멀티 바이트/인코딩 공격을 피하기 위해해야 ​​할 일은 무엇입니까?

*** 편집 이 링크는 도움이 될 수 있으며 다른 사용자에게 유용 할 수 있습니다. 사용자 입력을 구문 분석 라이브러리에 의존하는 경우 http://php.net/manual/en/features.file-upload.post-method.php

감사

+1

모든 항목을 올바르게 이스케이프/위생 처리하면 정상이어야합니다. – Jaime

+0

@Jaime이 말한 것; 또한 새 레코드가 예전 레코드를 방해하지 않는지 확인하십시오. 레코드가 교체되면 레코드를 대체 할 수 있습니다. 중복 등을 확인하십시오. SQL 쿼리를 올바르게 작성하십시오. 나쁜 CSV 파일은'fgetcsv'에 의해 "차단"됩니다. 그 외에도, 당신은 사소한 charset 문제가있을 수 있습니다. http://stackoverflow.com/questions/1472886/some-characters-in-csv-file-are-not-read-during-php-fgetcsv를 확인하십시오. – LSerni

답변

0

, 당신은 도서관의 품질에 대한 확신이 있어야합니다.

별도의 라이브러리를 선택하지 않는 것이 좋습니다.

작업에 대해 안정적인 라이브러리를 찾을 수없는 경우 보안에 중요한 응용 프로그램에서 유일하게 실행 가능한 옵션은 직접 기능을 구현하는 것입니다.