Что-то хабр плющит. Всё никак не могу отправить сообщение. Ваша регулярка не решают ни 1 из поставленных мною пунктов :) Касательно относительных ссылок — они вовсе не обязательно начинаются со слеша :)
В идеале там должно быть что-то вроде (?<!\w+//)([^"]+). Но как записать это в рабочем виде мне не хватает знаний. Не пойму как сказать регулярному выражению — хочу чтобы тут была строка, но она не начиналась с \w+// и перед нею была просто кавычка.
Видимо «автор методики» делает рассчёт на то, что браузер получив «Connection: close\r\n» забудет про сервер. Пожалуй это и в правду неудачное решение :)
По поводу записи в сокет, не совсем понял вас. Не могли бы вы пояснить? Сабжевое решение мне нравится тем, что оно наиболее простое, не требует никаких доп.усилий, сохраняется всё окружение… Но я не понимаю, почему не везде работает.
Спасибо за готовое решение, возьму на заметку, но в данный момент мне важнее понять и написать самому. Проект не коммерческий, а для личного профессионального роста, и моя задача самому пройти через все грабли, какие есть. Через 625 строк чужого искомый опыт получить, ИМХО, малореально :)
2. Я пропускаю html через DOM-древо, с которым в дальнейшем и работаю. Итоговый код получаю через .innerHTML. Я правильно понимаю — второй пункт могу игнорировать? Или такая схема может пропустить какую-нибудь не attr-based уязвимость? Просто в моей схеме отсутствует ручной парсинг HTML-строки вне конкретного тега. Насколько это безопасно?
3. Не могли бы привести пример ссылки, которая бы обошла /^javascript:/i, и при этом была бы опасной? Насколько я понимаю, если выполнить пункт первый выполнить всякие премудрости вроде java%бред-какойнибудь%scrIpt: отпадут сами собой?
Большая просьба: перед тем как ответить «я использую эти 3 строчки кода» или «используй силу, Люкбелый список», или «нельзя парсить на javascript-е» — внимательно прочитайте топик-вопрос.
student_ivan, вы какую то ересь сморозили. С чего это код на dart-е, скомпилированный в js, будет быстрее? Да и вообще почему вы его сраниваете с jQuery? Это как сранивать тёплое и солёное. Вы имеете представления о технологиях, о которых пишете? Да и кто эти «умные люди», осмеивающие jQuery? Каждой задаче — свой инструмент.
Там 3 пункта, а не 1 :) + я забыл указать про то, что он не умеет создавать древа заданий, только списки. В моём случае это не очень удобно. Быть может такая опция есть, но я не смог её найти, да и на скринах нигде не видел.
Google Tasks-ом я и пользовался до недавнего времени :) Но мне нужно именно десктопное приложение, иначе я рискую остаться без ничего, в случае сбоя интернет-соединения, кои бывают часто. Бывает что админы по полдня решают.