Implement Footer Email Obfuscation and Contact Rate Limiting

This commit is contained in:
choibk 2026-01-19 18:50:56 +09:00
parent 9697f5c853
commit 9d294bdf4a
3 changed files with 16 additions and 3 deletions

View File

@ -31,6 +31,16 @@ const Contact = () => {
return;
}
// 3. Rate Limiting (Prevent spamming)
const lastSubmission = localStorage.getItem('lastEmailSubmission');
if (lastSubmission) {
const timePassed = Date.now() - parseInt(lastSubmission, 10);
if (timePassed < 60000) { // 60 seconds
setStatus('잠시 후 다시 시도해주세요. (1분에 한 번만 전송 가능합니다)');
return;
}
}
setStatus('전송 중...');
try {
@ -52,6 +62,7 @@ const Contact = () => {
if (response.ok) {
setStatus('문의가 성공적으로 접수되었습니다! 담당자가 곧 연락드리겠습니다.');
setFormData({ name: '', phone: '', message: '', honeypot: '' });
localStorage.setItem('lastEmailSubmission', Date.now().toString());
alert('문의가 접수되었습니다. 확인 후 연락드리겠습니다!');
} else {
setStatus('전송에 실패했습니다. 잠시 후 다시 시도해주세요.');

View File

@ -6,9 +6,11 @@ const Footer = () => {
<div className="container footer-container">
<div className="footer-info">
<h3>Sokuree Consultant</h3>
<p>Representative: Gildong Hong | Business License: 000-00-00000</p>
<p>代表: 홍길동 | Business License: 000-00-00000</p>
<p>주소: 서울특별시 ... (추후 업데이트)</p>
<p>이메일: contact@sokuree.com | 전화: 02-0000-0000</p>
<p>
이메일: <a href={`mailto:${'contact'}@${'sokuree.com'}`} style={{ color: '#ccc', textDecoration: 'none' }} onClick={(e) => { e.currentTarget.href = `mailto:contact@sokuree.com`; }}>{'contact'}@{'sokuree.com'}</a> | 전화: 02-0000-0000
</p>
</div>
<div className="footer-links">
<Link to="/news">소식</Link>

View File

@ -40,7 +40,7 @@ const About = () => {
<ul className="profile-list">
<li className="flex items-center">
<span style={{ marginRight: '10px' }}></span>
품질관리 기술사
품질관리 기술사 / 6 Sigma MBB
</li>
<li className="flex items-center">
<span style={{ marginRight: '10px' }}></span>