-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
jsdomに戻し、brのみを改行とすることに変更 #149
Conversation
This PR is linked to issue #148 |
Uplevel your code reviews with CodeRabbit ProCodeRabbit ProIf you like this project, please support us by purchasing the Pro version. The Pro version has advanced context, superior noise reduction and several proprietary improvements compared to the open source version. Moreover, CodeRabbit Pro is free for open source projects. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Files selected (1)
- web/app/feature/translate/utils/extractNumberedElements.ts (1)
Review comments generated (3)
- Review: 2
- LGTM: 1
Tips
Chat with
CodeRabbit Bot (@coderabbitai
)
- Reply on review comments left by this bot to ask follow-up questions. A review comment is a comment on a diff or a file.
- Invite the bot into a review comment chain by tagging
@coderabbitai
in a reply.
Code suggestions
- The bot may make code suggestions, but please review them carefully before committing since the line number ranges may be misaligned.
- You can edit the comment made by the bot and manually tweak the suggestion if it is slightly off.
Pausing incremental reviews
- Add
@coderabbitai: ignore
anywhere in the PR description to pause further reviews from the bot.
const doc = new JSDOM(content); | ||
const numberedElements: Array<{ number: number; text: string }> = []; | ||
// <br>のみを改行とする | ||
doc.window.document.body.innerHTML = doc.window.document.body.innerHTML | ||
.replace(/\n/g, "") | ||
.replace(/<br\s*\/?>/gi, "\n"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
doc.window.document.body.innerHTML
の操作は、XSS攻撃に対して脆弱です。ユーザー入力を直接DOMに挿入する前に、適切なサニタイズ処理を行うべきです。
- doc.window.document.body.innerHTML = doc.window.document.body.innerHTML
+ const sanitizedContent = content.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
+ doc.window.document.body.innerHTML = sanitizedContent
if (dataNumber !== null) { | ||
numberedElements.push({ | ||
number: Number.parseInt(dataNumber, 10), | ||
text: element.textContent?.trim() || "", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Closes #148
Summary by CodeRabbit