Notice
Recent Posts
Recent Comments
Tags
- XSS PHP
- 타임피커
- javascript 유효성체크
- 말줄임표시
- javascript 바코드 생성
- Mac Oracle
- TempData
- asp.net core Select
- ViewBag
- javascript redirection
- 하드 마이그레이션
- javascript 바코드스캔
- php 캐쉬제거
- ASP.Net Core 404
- jquery 바코드
- django 엑셀불러오기
- 바코드 스캔하기
- 404에러페이지
- SSD 복사
- 바코드 생성하기
- 파일업로드 유효성체크
- 맥 오라클설치
- ViewData
- 하드 윈도우 복사
- jquery 바코드생성
- 파일업로드 체크
- asp.net dropdownlist
- 강제이동
- XSS방어
- asp.net Select
웹개발자의 기지개
[PHP] 초간단 캡차, 스팸방지 기능 만들기1 본문
스팸글의 매크로 등록을 위하여 스팸방지 캡차 기능을 간단히 만들어본다.
우선 CSRF 방지하는 기능도 추가로 같이 이용하면 더욱 좋겠다.
https://wonpaper.tistory.com/417
압축을 풀면 위의 3가지 파일을 같은 디렉토리에 배치한다.
그리고, 다음 소스로 스팸방지 기능을 처리한다.
[ signup.php ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
<html>
<head>
<title>CHSignup</title>
</head>
<body onload="document.form.imagecode.focus()">
<h2>CHSignup</h2>
<?php
if (isset($_POST['imagecode'])
&& strlen($_POST['imagecode']) == 5
&& isset($_SESSION['text'])
&& strtolower($_POST['imagecode']) == $_SESSION['text'])
{
echo '<b><font color="green">코드가 정확하게 맞았습니다. :-)</font></b>';
}
elseif (isset($_POST['imagecode']))
{
echo '<b><font color="red">코드가 일치하지 않습니다. :-(</font></b>';
}
unset ($_SESSION['text']);
?>
<form name="form" method="post" action="<?=$_SERVER['PHP_SELF']?>?<?=SID?>">
<table>
<tr>
<td colspan=2>이미지에 보이는 글자를 입력하여 주십시오.</td>
</tr>
<tr>
<td><img src="chsignup.php?<?=SID?>"></td>
<td><input type="text" name="imagecode"></td>
</tr>
<tr>
<td colspan=2><input type="submit" value="확인"></td>
</tr>
</table>
</form>
</body>
</html>
|
cs |
29라인의 imagecode input 박스값으로 생성된 스팸방지 코드를 동일하게 치고, submit 하면
8 ~ 12 라인사이의 값은 넘어간 다음페이지의 변수값들을 받아서 스팸코드가 제대로 맞는지 체킹한다.
내부적으로 세션처리값으로 비교한다.
소스 또한 같이 올리도록 하겠다.
'PHP' 카테고리의 다른 글
[PHP] XSS 방어용 필터링 하기1 (GET/POST 변수들 막기) (0) | 2024.04.16 |
---|---|
[PHP] Ajax JSON 형태로 DB내의 데이터값 불러오기 (0) | 2024.04.04 |
[PHP] 네이버 스마트에디터2 - 413 Request Entity Too Large 에러날때 (0) | 2024.03.21 |
[PHP] 특정 특수문자와 영문만 남기고 다른 문자열 제거하기 (0) | 2024.03.07 |
[PHP] 유용한 실무팁 6 - 게시글 순서 이동시키기 로직 (0) | 2024.03.07 |
Comments