백엔드 개발 PHP 튜토리얼 PHP 关于SQL注入的防范措施。

PHP 关于SQL注入的防范措施。

Jun 23, 2016 pm 01:42 PM

    最近在使用框架的时候还是有点不安,不知道框架的设计者有没有考虑到SQL-Injection的问题,我在顶层需不需要做一些必要的过滤等等,由此我特意的去StackOverflow看了下,真是获益良多,然后我去看了下框架的DB库的内部方法,然后就比较安心了。分享下国内外PHP程序员在处理SQL-Injection的一些方案。


    国外普遍都推荐,只要你是使用查询都应该做到两点:1.prepared statements(准备好的声明) 2.parameterized queries (参数化的查询请求)

我一开始也不理解这个是什么意思,后来看他们举例就大概知道了。比较安全的SQL,你需要一开始对查询的变量进行准备。如:

$name = $_POST['name'];$sql = 'select * from user where name'.$name;
로그인 후 복사

那么最好就是对$name先处理下,

$name = mysql_real_escape_string($_POST['name']);
로그인 후 복사

然后,让请求过来的变量成为参数,而不是SQL语言本身。

$sql = 'select * from user where name=\''.$name.'\'';
로그인 후 복사

当然,这种写法还是比较粗糙。

所以,一般都会推荐使用PDO 或者是MYSQLI的prepare() excute()方法。

$stmt = $pdo->prepare('SELECT * FROM user WHERE name = :name');$stmt->execute(array('name' => $name));
로그인 후 복사

关于PDO::prepare()

这样做的好处就是,你不再需要担心查询请求会插入一些SQL语句,因为这些语句都将会当作是请求变量(一个字符串或者是数字),不再会误以为是SQL语言本身。这样可以大大的减少SQL注入的机会。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) 11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) Mar 03, 2025 am 10:49 AM

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄)

Laravel의 플래시 세션 데이터로 작업합니다 Laravel의 플래시 세션 데이터로 작업합니다 Mar 12, 2025 pm 05:08 PM

Laravel의 플래시 세션 데이터로 작업합니다

Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Mar 12, 2025 pm 05:09 PM

Laravel 테스트에서 단순화 된 HTTP 응답 조롱

Instagram API 소개 Instagram API 소개 Mar 02, 2025 am 09:32 AM

Instagram API 소개

Laravel Back End : Part 2, React가있는 React 앱 구축 Laravel Back End : Part 2, React가있는 React 앱 구축 Mar 04, 2025 am 09:33 AM

Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 Mar 14, 2025 am 11:42 AM

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Mar 13, 2025 pm 12:08 PM

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트

2025 PHP 상황 조사 발표 2025 PHP 상황 조사 발표 Mar 03, 2025 pm 04:20 PM

2025 PHP 상황 조사 발표

See all articles