угловое дезинфицирующее средство и бесхозная угловая скобка в html-содержимом электронной почты - PullRequest
0 голосов
/ 05 июня 2018

В моем угловом приложении я применил угловую санацию, поэтому недопустимый html удаляется (с использованием метода getTrustedHtml) и действительный html отправляется (HttpPost) в веб-API.Также HtmlSanitizer в web api не рекомендуется по другим причинам;так что только клиентская сторона, которую я должен сделать.

При отправке html-почты в мое угловое приложение я наткнулся на потерянную угловую скобку в сценарии в HTML во время тестирования QA: а пустые угловые скобки вызывают ошибку как «Ошибка:[$ sanitize: badparse] http://errors.angularjs.org/1.4.8/$sanitize/badparse?p0=%3C%2Fh"

<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>

I am going very >> fast.. <hello> if you are not able to come by 7'<<< O clock> Please be at home >;
<div style="background-color:blue;">Testing</div>
<img src="../parent/my_profile_photo.jpeg" title="Profile Pic">
<img src="profile_of_parents/my_parents_photo.jpeg"  />
I am in >>>> <Bangalore> which is far > 50 squre Km. Price for everything here is much much >> 100 Rs.
<p>My last paragraph.</p>

</body>
</html>

Чтобы убрать несвязанные угловые скобки ("<" или "<< .." или ">" или "... >>>>> .... "или />) Я начал искать регулярное выражение, но не смог найти рабочий пример.

Пожалуйста, помогите, если кто-нибудь знает какую-либо идею / работу вокруг.

1 Ответ

0 голосов
/ 05 июня 2018

Это очень сложно, так как вы позволяете пользователю вводить свой собственный код.

Вы должны реализовать правила, такие как отсутствие пользовательских тегов или анализ только необработанного текста, а не текста HTML.

С помощью правил такого типа вы можете затем проанализировать содержимое и отправить его на анализ.

Например, если пользователь не может использовать шевроны без пробелов, вы можете сделать что-то вроде этого:

const text = `<div>Some text > with chevrons < in all directions</div>`;
const parsed = text.replace(/ > /g, ' &gt; ').replace(/ < /g, ' &lt; ');

console.log(parsed);
...