내 고객의 사이트에는 40 개의 필드 형식으로 구성된 '온라인 평가'섹션이 있습니다. 각 필드에는 질문에 따라 50에서 200 자까지 허용 할 프로그램이있는 사용자 입력이 필요합니다.데이터베이스에 큰 테이블이있는 것이 안전합니까?
그런 다음 양식이 클라이언트의 메일로 전송되지만 클라이언트가 나중에 모든 양식을 확인할 수 있도록 데이터베이스에도 저장됩니다.
나는 codeigniter를 사용하고 있으며 SQL injection을 방지하기 위해 활성 레코드를 사용했습니다. 또한 나는 다른 질문에 게시 된 방법으로 스팸봇 - 유효성을 검사했다. 나는 css로 숨겨진 필드를 숨겨야한다. 값이 채워지거나 일치하지 않으면 양식이 유효성을 검사하지 않습니다. (Btw, 이것으로 충분합니까? 아니면 captcha를 추가해야합니까?).
코드는 다음과 같이이다 :
<p class="mail"><input type="text" name="mail" id="mail" /></p> //then I hyde this with css
<input type="hidden" name="mail" value="some value" />
후 나는 42 개 필드를 추가하기 때문에 데이터베이스 테이블을 생성 할 때 그것이 경우가
if($this->input->post('mail', true) != '' AND $this->input->post('mail', true) != 'some value')
{
die('could not send your request');
}
else
{
process form
}
내 질문은, 내가 아는 해달라고한다 확인 내 PC,하지만 내 인터넷 연결이 정말 느려지고 거의 반감. 아마도 공격자가이 양식을 여러 번 채우고 각 필드를 완전히 채우고 데이터베이스를 접을 수 있다고 생각합니까? 이게 가능한가?
테이블을 2 ~ 3 개의 다른 테이블로 나누면 더 안전할까요? 아니면 무의미한가? 나는 보안에 대해 많이 모릅니다. 배울 곳을 찾으려고합니다. 그러나 내가 찾은 모든 정보는 실제로 이해할 수없는 용어로 가득 차 있기 때문에 매우 어렵습니다. 나는 너의 도움을 아주 많이 appreaciate.
편집 : 올바른 방법은 무엇입니까?
'데이터베이스에 큰 테이블을 두는 것이 안전합니까?'아이러니 컬합니다. 데이터베이스는 데이터를 저장하는 것입니다. –
질문 : 그렇습니다. 그러면 악화 될 수 있습니다. 예 : –
정말 큰 테이블을 가지고 있어도 괜찮습니까? 그것이 여러 번 채워지면 붕괴 될 수는 없습니다. – Ant100