Ticket #1384 (closed defect: fixed)

Opened 2 years ago

Last modified 2 years ago

DBModel escape문제

Reported by: yupmin Owned by: inureyes
Priority: major Milestone: 1.8.3
Component: Core Version: 1.8
Keywords: Cc:
Release:

Description

  • $query->setAttribute('published', 'UNIX_TIMESTAMP()') 경우 문자열이기 때문에 자동 escape를 한다.
    	public function setAttribute($name, $value, $escape = null) {
    		if (is_null($value))
    			$this->_attributes[$name] = 'NULL';
    		else
    			$this->_attributes[$name] = (is_null($escape) && !is_string($value) ? $value : ($escape ? '\'' . POD::escapeString($value) . '\'' : "'" . $value . "'"));
    	}
    
  • !is_string($value)를 빼던, 아니면 문자열을 쓰는 setAttribute 에 escape를 true로 셋팅해줘야 한다.

Change History

comment:1 Changed 2 years ago by yupmin

[8209/old_svn]

refs #1384

  • 일단 문자열들은 escape true로 셋팅(사이드 이펙트 검사해야함..-_-)

comment:2 Changed 2 years ago by inureyes

  • Owner changed from yupmin to inureyes

마지막 condition 은 FALSE로 기본값을 셋팅하고, NULL일 경우는 is NULL 로 검사할 수 있도록 하겠습니다. 덧붙여서 이스케이핑은 예약어 기반으로 제외하도록 하겠습니다.

comment:3 Changed 2 years ago by inureyes

[8212/old_svn]

refs #1384

  • 예약어를 통해 이스케이핑 조정하도록 스키마 변경

comment:4 Changed 2 years ago by inureyes

  • Status changed from new to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.