• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Посоветуйте способы уменьшения объема скриптов

  • Автор темы DizzZ
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

DizzZ

Довольно давно столкнулся с проблемой, которая мне до сих пор не дает покоя.
Есть скрипт, но он большой и его объем надо уменьшить. Поскольку за трафик приходится платить. Да и пользователей жалко :D
Можно руками его править, но очень долго и вообще как-то тупо.
Пробовал кучу разного софта: HTML Zip, HTMLCompress, w3compiler, packer и еще кучу всего.
В некоторых софтинах встретилась довольно забавная тенденция - скрипты не работают после сжатия (в частности такое наболюдалось после обработки w3compiler'ом).
Вторая проблема - из-за использования zip-подобного алгоритма (а также из-за того, что распаковщик написан на JavaScript) скрипты разжимаются довольно долго (иногда несколько секунд, такое наблюдалось в HTML Zip, например).
Короче, решил свою софтину написать - eCoder. Вышло довольно неплохо (http://ecoder.org.ua), но второй недостаток хоть и сгладился, но не исчез - скриты все равно довольно долго распаковывались (хотя качество сжатия было существенно лучше, чем у вышеописанного софта.)
Для работы этой софтины требовался еще и .NET 1.1, что тоже достоинством не назовешь :-/ . Но делать нечего, приходилось пользоваться тем, что есть.
Это было где-то год назад.
Со временем я все же пришел к мысли, что надо не паковать, а по возможности оптимизировать, удаляя лишнее и укорачивая имена переменных.
Поискал такой софт. Кроме упомянутого выше w3compiler'а нашел еще кучу барахла, но скрипты в результате обработки либо мало уменьшались в размере, либо переставали работать, либо и то и другое :D
И опять я решил посоревноваться. Вроде бы, на этот раз успешно :)
Софтина вышла небольшая, кроссбраузерная (и, следовательно, кроссплатформенная). Поскольку писал на JavaScript, работает это все не слишком быстро, но на мой взгляд вполне нормально (на оптимизацию скрипта в 50К уходит обычно несколько секунд). Скрипты вроде не портит.

Но вот какой вопрос: может кто подскажет, как еще можно уменьшить объем скриптов?
Своей софтной (я обозвал ее TrickyScripter) я решил поделиться со всеми желающими (не жалко =)), так что ваши советы не пропадут зря, а принесут пользу вам и другим разработчикам.
На данный момент TrickyScripter уменьшает объем скриптов обычно вдвое-втрое. Но, я думаю, это не предел, если каждый поможет, чем сможет :)
Если кто хочет дать совет, побыть бета тестер или кому просто интересен этот проект - мыльте на scriptGuru@gmail.com (или просто пишите в этот топик)
 
A

Andrew Stephanoff

Пришли плз и мне, Andrew.Stephanoff [@] gmail.com.
Или прикрепи здесь на форуме, чтобы можно было скачать.
Очень полезная штука, буду рад потестить.
Заранее спасибо :D
P. S. А как у тебя происходит сжатие и оптимизация? Мне представляется, что необходимо убирать лишние пробелы, перевод строк, укорачивать имена переменных.
 
D

DizzZ

Не ожидал такого быстрого ответа :)
Всем, кто просил вышлю эту софтину на мыло.
Как прикрепить тут на форуме я не совсем понял :D
Подскажите, если не трудно..
-----
спасибо, уже нашел как прикрепить файл - прикрепляю к этому посту.
 

Вложения

  • TrickyScripter1.0a.zip
    6,9 КБ · Просмотры: 207
?

????

<!--QuoteBegin-DizzZ+24:01:2006, 08:50 -->
<span class="vbquote">(DizzZ @ 24:01:2006, 08:50 )</span><!--QuoteEBegin-->Как прикрепить тут на форуме я не совсем понял
[snapback]29687" rel="nofollow" target="_blank[/snapback]​
[/quote]
Нажми "Редактировать" на любом своём посте и увидишь под формой ответа "Загрузка файлов"
 
G

Guest_DizzZ_*

Если кто обнаружит глюки, пишите на scriptGuru@gmail.com
 
V

Victor Gr.

Ну, калі на сэрвере ёсць PHP з zlib, то чаму бы і не? :p

Пішаш <script src='script.php'></script>

А ў script.php:

<?php
ob_start ('ob_gzhandler', 9);
header ('Content-type: text/javascript'); // ці які там MIME?

print '
код javascripts...
';
?>

Ці чаму не?
 
?

????

<!--QuoteBegin-Victor Gr.+13:02:2006, 22:47 -->
<span class="vbquote">(Victor Gr. @ 13:02:2006, 22:47 )</span><!--QuoteEBegin-->Ці чаму не?
[snapback]30551" rel="nofollow" target="_blank[/snapback]​
[/quote]
1. не все поддерживают gzip
2. если поддерживают - не всегда признаются (IE: если не стоит "использовать HTTP 1.1" - не отправляет access encoding)
3. нагрузка на сервер (можно исправить одноразовым сжатием, а не на лету)
4. так и php не у всех есть ;) и реже не установлен zlib
5. даже если все ОК - почему бы для начала не пропустить через обфускатор/упаковщик, а потом сжать zlib'ом
 
D

DizzZ

Полностью согласен со всеми пунктами.
Кстати, благодаря усидиям одного из пользователей я уже нашел и исправил несколько багов в TrickyScripter и несколько еще предстоит исправить (новая версия будет доступна где-то в течение недели).

В будущем планируется оформить TrickyScripter в виде WSH-скрипта и плагина к Dreamweaver, но это уже будет платная версия. Бесплатная весрия тоже будет поддерживаться и будет доступна по тому же адресу, который указан в предыдущих постах (http://ecoder.org.ua/tricky/).
 
I

iamyri

Объем можно уменьшить удалив лишние пробелы. Дримвивер хорошо с этим справляется. Но знак перевода на новую строку с одним пробелом должен оставаться, тогда и скрипты будут работать. Я со всеми страницами перед загрузкой это проделываю.
 
A

Andrew Stephanoff

не обязательно, можно отделять ";"
 
I

iamyri

Не спорю. Не пробовал. Возможно. Одно знаю точно - пробелы нужно удалять. Зачем ненужный мусор и лишний трафик ? Выйгрыш во всем.
 
A

Andrew Stephanoff

Если учесть, что ява-скрипты кешируются и редко достигают больших размеров, то вряд ли возникнет большой траффик.
 
I

iamyri

Конечно. Не спорю. А еще надо всегда стараться помещать все скрипты в отдельные файлы и запирать их в закрытом от роботов месте. Роботы не любят служебный код.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!