방식으로 어떤 종류의 수동 (어, 여기 용어는 아마도 '정적'올바른 용어 것)하기 mysql_real_escape_string을 실행하기 위해 활성 db 연결이 필요하지 않도록 charset을 mysql_real_escape_string으로 푸시한다. 우리가 활성 연결없이 mysql_real_escape_string를 할 왜 어떤 사람들로
을 요청할 수 있습니다, 추론은 간단하다 : 그래서a) construct query (this is where the mysql_real_escape_string takes place)
b) create hash (md5, md4, sha1, crc32, choose your poison) from said query
c) check cache (memcached) for hash created in step b
d) query cached in memcached -> return cached results -> terminate script
c) query NOT cached in memcached -> connect to mysql -> cache result to memcached + return result
쿼리의 해시가 이전에 만들어지기 때문에 당신이 위의와 함께 볼 수 필요한 경우 캐쉬 검사/db 연결 ... db 연결이 이루어지기 전에 mysql_real_escape_string이 발생합니다.
이 목표의 전체적인 목표는 단지 캐시 히트에서 '전체 페이지 요청'을 실행할 수 있다면 mysqld에 연결할 필요가 없다는 것입니다. 기간.
우리가 지금 가지고있는 것은 mysql_real_escape_string이 실행할 수 있도록 db 연결이 이루어지는 대규모 요청 집합입니다. 이 솔기는 불필요합니다.
그래서, 요약 : DB를 연결하지 않고 (그것은 100 % 안전 할 필요가 있으므로, POST 및 값을 GET)우리 안전하게 MySQL의 문자열을 탈출 할 수있는 방법으로해야합니다.
감사합니다.
우리는이 대답을 사용하지는 않았지만, 이것을 할 수있는 유일한 방법은 (우리가 볼 수있는 것에서)입니다. mysql_real_escape_string을 실행하여 mysql_real_escape_string 이전에 쿼리를 해쉬 할 필요가있는 코드의 로직을 변경하면 mysql_real_escape_string을 모두 함께 피하고 db 연결을 피할 수있는 유일한 방법이다. 감사. –