시청 단어 정규식 충돌

이것은 이중의 버그입니다.

첫째, 정규식 오류로 인해 어떤 게시물을 작성하든 500 서버 오류가 발생합니다.
이전 버그 보고서 Invalid regular expressions in 'Watched Words' makes no watched word work (시나리오: 더 나쁨)도 참고하십시오.

둘째, 대시(-)를 이스케이프하는 이전에는 정확했던 정규식이 이제는 잘못되었다고 인식됩니다. 따라서 3.1.0 안정판 이전에는 \-가 작동했지만, 이제는 치명적인 오류를 유발합니다.

이것은 아마도 9a27803에서 Unicode가 활성화되었기 때문일 것입니다.

Regular expression syntax cheat sheet - JavaScript | MDN 를 참고하십시오.

:, -, @와 같은 일부 문자는 이스케이프되었을 때나 그렇지 않았을 때 모두 특별한 의미를 가지지 않습니다. \:, \-, \@와 같은 이스케이프 시퀀스는 정규식에서 해당 문자의 리터럴, 이스케이프되지 않은 등가 문자와 동일합니다. 그러나 유니코드 플래그가 있는 정규식에서는 잘못된 동일성 이스케이프(invalid identity escape) 오류를 유발합니다. 이는 \p 또는 \k와 같은 새로운 이스케이프 시퀀스를 사용하는 기존 코드와의 후방 호환성을 보장하기 위해 수행됩니다.

하지만 여기에서 예외 처리기가 있으면 좋겠습니다.

10개의 좋아요

이 문제를 우선순위로 올려 두었으며, 앞으로 4주 안에 처리할 예정입니다.

7개의 좋아요

이 문제는 수정되었습니다:

image

현재 Ruby 측에서 JS 정규식 검증을 활성화할 수 있는 방법을 찾고 있습니다. 곧 수정안을 준비할 수 있을 것으로 기대합니다.

6개의 좋아요

최근 업데이트(지난주) 이후로 새 게시물을 작성할 때 500 에러가 발생하기 시작했습니다. 또한 이메일과 관련된 에러도 발생했는데(sidekiq에서 확인한 바로는 감시 단어(watched words)와 관련된 것이었습니다) 이 문제는 오늘에서야 알게 되었습니다. 업데이트를 실행해 보았지만 게시물을 작성할 때 발생하는 500 에러는 여전히 존재했습니다. 현재까지 찾은 유일한 해결 방법은 모든 감시 단어를 제거하는 것입니다.

추가 정보 없이 재현할 수 없습니다. watched_words_regular_expressions 사이트 설정이 활성화되어 있나요? 감시 중인 단어 목록을 업로드해 주시면 테스트해 볼 수 있습니다. 아니면 로그(https://your-forum/logs)를 확인하고 감시 중인 단어와 관련된 스택 트레이스를 여기에 게시해 주세요.

watched_words_regular_expressions 사이트 설정이 활성화되어 있나요? → 아니요

몇 가지 테스트를 해봤는데, 와일드카드일 때만 발생하는 것 같습니다.

asteriskexampleasterisk → 500 오류가 발생합니다.
example → 올바르게 대체됩니다.

asterisk는 *입니다.

@RGJ 작성자가 제기한 문제가 해결되었다고 느끼시나요?

해당 PR을 병합했습니다.

2개의 좋아요