Skip to content

Commit 1bcd114

Browse files
authored
Merge pull request #3 from kurozumi/replace-full-width-character
攻撃性のある特定の文字列を入力してサブミットしたらその文字列は全角に変換
2 parents ef07b1a + 560f533 commit 1bcd114

File tree

2 files changed

+4
-24
lines changed

2 files changed

+4
-24
lines changed

Form/EventListener/HTMLPurifierListener.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ public static function getSubscribedEvents(): array
3434
*/
3535
public function purifySubmittedData(FormEvent $event): void
3636
{
37-
if ('&' === $event->getData()) {
38-
$event->setData(mb_convert_kana($event->getData(), 'A'));
39-
}
37+
$event->setData(str_replace(['<', '>', '&'], ['', '', ''], $event->getData()));
4038
}
4139
}

Tests/Web/EntryControllerTest.php

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,10 @@
1515

1616
class EntryControllerTest extends \Eccube\Tests\Web\EntryControllerTest
1717
{
18-
public function test住所に攻撃性のある文字列を入力してサブミットしたらその文字列は削除される未入力エラーが発生するか()
18+
public function test攻撃性のある特定の文字列を入力してサブミットしたらその文字列は全角に変換される()
1919
{
2020
$formData = $this->createFormData();
21-
$formData['address']['addr01'] = '<script>alert()</script>';
22-
23-
$crawler = $this->client->request('POST',
24-
$this->generateUrl('entry'),
25-
[
26-
'entry' => $formData,
27-
'mode' => 'confirm',
28-
]
29-
);
30-
31-
self::assertEquals('新規会員登録', $crawler->filter('.ec-pageHeader > h1')->text());
32-
self::assertCount(1, $crawler->filter('.ec-errorMessage'));
33-
self::assertTrue($this->client->getResponse()->isSuccessful());
34-
}
35-
36-
public function testアンパサンドを入力してサブミットしたら全角に変換されるか()
37-
{
38-
$formData = $this->createFormData();
39-
$formData['company_name'] = '&';
21+
$formData['company_name'] = '<script&>';
4022

4123
$crawler = $this->client->request('POST',
4224
$this->generateUrl('entry'),
@@ -47,6 +29,6 @@ public function testアンパサンドを入力してサブミットしたら全
4729
);
4830

4931
self::assertEquals('新規会員登録(確認)', $crawler->filter('.ec-pageHeader > h1')->text());
50-
self::assertEquals('', $crawler->filter('#entry_company_name')->attr('value'));
32+
self::assertEquals('<script&>', $crawler->filter('#entry_company_name')->attr('value'));
5133
}
5234
}

0 commit comments

Comments
 (0)