PHP로 업로드 된 파일이 db에 잠겨 있는지 확인하고 싶습니다. 현재 내가 사용하고있는 핵심 기능은 fopen과 fgetcsv입니다. 불행하게도이 주제는 웹에서 꽤 불투명 한 것처럼 보입니다.php csv 파일 업로드 및 구문 분석 보안
파일은 "실행"되지 않지만 fgetcsv를 사용하여 열었습니다. 이 모듈을 통해 서버에서 파울 플레이가 발생하지 않도록하려면 어떤 단계를 수행해야합니까?
현재 파일 크기를 제한하고 확장자를 확인합니다.
- 업로드 된 파일이 실제로 csv 확장명을 가진 일부 파일뿐만 아니라 csv인지 확인해야합니까? 이 파일 형식 인식기를 통해 것이라고 가정합니까?
- 멀티 바이트/인코딩 공격을 피하기 위해해야 할 일은 무엇입니까?
*** 편집 이 링크는 도움이 될 수 있으며 다른 사용자에게 유용 할 수 있습니다. 사용자 입력을 구문 분석 라이브러리에 의존하는 경우 http://php.net/manual/en/features.file-upload.post-method.php
감사
모든 항목을 올바르게 이스케이프/위생 처리하면 정상이어야합니다. – Jaime
@Jaime이 말한 것; 또한 새 레코드가 예전 레코드를 방해하지 않는지 확인하십시오. 레코드가 교체되면 레코드를 대체 할 수 있습니다. 중복 등을 확인하십시오. SQL 쿼리를 올바르게 작성하십시오. 나쁜 CSV 파일은'fgetcsv'에 의해 "차단"됩니다. 그 외에도, 당신은 사소한 charset 문제가있을 수 있습니다. http://stackoverflow.com/questions/1472886/some-characters-in-csv-file-are-not-read-during-php-fgetcsv를 확인하십시오. – LSerni