Devise에서 username 컬럼을 추가 할 때 Rails4 이후의 정규 표현식에서 유효성 검사에주의를 기울였습니다.

Devise에 username 컬럼을 추가했을 때 공식 위키를 보지 못한다고 생각한 포인트입니다.

공식에서는 추가 된 사용자 이름의 유효성 검사에 다음 정규식을 사용했습니다.
# app/models/user.rb

# Only allow letter, number, underscore and punctuation.
validates_format_of :username, with: /^[a-zA-Z0-9_\.]*$/, :multiline => true

그러나 :multiline => true는 보안 문제입니다. 그렇지 않으면 이렇게됩니다.


Rails Guide (6.6)에 따르면 Rails 4 이상에서는 ^, $ 대신 대신\A,\z를 사용하는 것이 좋습니다. 그래서 이렇게 바꾸자.
  validates_format_of :name, with: /\A[a-zA-Z0-9_\.]*\z/


참고:
ht tp // 쥬 ぺr 흠 하테나 bぉg. 코m/엔트리/2013/06/27/062237
htp : // 굳이 s. 루병라이 LS. rg/세쿠리 ty. html
h tps : // s c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 577653 / ぢ ふ れ せ せ ー ベ ー ー ー ー ー ー ~ an d ㅇ

좋은 웹페이지 즐겨찾기