The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Конвертирование скрипта в исполняемый файл или варианты"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 13-Май-05, 10:28  (MSK)
Всем привет!

Есть скриптик на перл, взаимодействующий с базой данных
Есть юзер, имеющий право этот скриптик запускать
Есть пароль, записаный в скриптике для доступа к БД
Есть права на чтение на этом скрипте для этого юзера, ибо без них скрипт не может быть выполнен.

Хочется что бы умный юзвер не мог сказать more скрипт и прочитать пароль для БД.

Кто нить может предложить какие либо варианты решения данной задачки?

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Ноним emailИскать по авторуВ закладки on 13-Май-05, 11:28  (MSK)
Компиляция при помощи экспериментальной утилиты perlcc, что нежелательно, ибо даст огромнейший бинарник, либо при помощи обфускации - особого способа шифрования перл-скриптов. Поищи в сети или на CPAN'е как это делается.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от rWizard emailИскать по авторуВ закладки(??) on 13-Май-05, 14:01  (MSK)
есть ещё комерческая утилита perl2exe
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 13-Май-05, 14:11  (MSK)
>есть ещё комерческая утилита perl2exe

да, я забыл указать - работаю под FreeBSD 4.10 - 5.4, а она Фрю как то не любит

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от butcher Искать по авторуВ закладки(ok) on 13-Май-05, 14:25  (MSK)
>>есть ещё комерческая утилита perl2exe
>
>да, я забыл указать - работаю под FreeBSD 4.10 - 5.4, а
>она Фрю как то не любит

Здесь в форумах уже поднимался подобный вопрос, только там вроде задача была скрыть исходники, у вас задача сложнее - вам надо скрыть строку. ИМХО, при желании, даже очень небольших знаний достаточно, чтобы вытащить эту строку из вашего бинарника.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от allez Искать по авторуВ закладки(ok) on 13-Май-05, 14:17  (MSK)
>Всем привет!
>
>Есть скриптик на перл, взаимодействующий с базой данных
>Есть юзер, имеющий право этот скриптик запускать
>Есть пароль, записаный в скриптике для доступа к БД
>Есть права на чтение на этом скрипте для этого юзера, ибо без
>них скрипт не может быть выполнен.
>
>Хочется что бы умный юзвер не мог сказать more скрипт и прочитать
>пароль для БД.
>
>Кто нить может предложить какие либо варианты решения данной задачки?

Вот выдержка из "man perlcompile":

>     The Bytecode Back End
>
>     This back end is only useful if you also have a way to load and execute
>      the bytecode that it produces.  The ByteLoader module provides this
>      functionality.
>
>       To turn a Perl program into executable byte code, you can use "perlcc"
>       with the "-B" switch:
>
>         perlcc -B myperlprogram.pl
>
>       The byte code is machine independent, so once you have a compiled mod-
>       ule or program, it is as portable as Perl source (assuming that the
>       user of the module or program has a modern-enough Perl interpreter to
>       decode the byte code).
>
>       See B::Bytecode for information on options to control the optimization
>       and nature of the code generated by the Bytecode module.

Это то, что вам нужно. И, что самое главное, это то, что всегда с вами :-)
Почитайте еще man perlcc.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от z3f Искать по авторуВ закладки(??) on 13-Май-05, 14:32  (MSK)
Может  это - я на тупняке=)
но всё таки предложу решение...
perl как язык предназначен для работы с текстовыми файлами, так?
а что мешает вынести пароль и юзверя для доступа к БД в отдельный тектовый файл и потом номальным образом считать его оттудова?
чем такая идея не подойдет?
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 13-Май-05, 14:48  (MSK)
>Может  это - я на тупняке=)
>но всё таки предложу решение...
>perl как язык предназначен для работы с текстовыми файлами, так?
>а что мешает вынести пароль и юзверя для доступа к БД в
>отдельный тектовый файл и потом номальным образом считать его оттудова?
>чем такая идея не подойдет?


Потому как юзверь:
а) открывает скрипт
б) смотрит на какой файл ссылаемся
с) смотрит этот файл
д) снова знает логин/пароль

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Ноним emailИскать по авторуВ закладки on 13-Май-05, 17:09  (MSK)
>Потому как юзверь:
>с) смотрит этот файл

Ась? а если права доступа 700 задать?.. Или это сам админ так хулиганит... Ну на то он и админ ;-)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 13-Май-05, 17:13  (MSK)
>>Потому как юзверь:
>>с) смотрит этот файл
>
>Ась? а если права доступа 700 задать?.. Или это сам админ так
>хулиганит... Ну на то он и админ ;-)

а овнер кто? Поскольку скрипт запускает пользователь, выполняться он будет с его правами, => у него должно быть право на чтение и другого файла

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от z3f Искать по авторуВ закладки(??) on 13-Май-05, 17:36  (MSK)
>>Может  это - я на тупняке=)
>>но всё таки предложу решение...
>>perl как язык предназначен для работы с текстовыми файлами, так?
>>а что мешает вынести пароль и юзверя для доступа к БД в
>>отдельный тектовый файл и потом номальным образом считать его оттудова?
>>чем такая идея не подойдет?
>
>
>Потому как юзверь:
>а) открывает скрипт
>б) смотрит на какой файл ссылаемся
>с) смотрит этот файл
>д) снова знает логин/пароль

Я никогда не возился до такой степени и наверное скажу жуткую глупость - но по моему на файл можно поставить права read и execute, а вот без read будет ли производится выполнение?

кроме того что за юзверь такой который могет понять скрипт ?
если он продвинутый но не до конца тогда есть простое решение - запихать сичтываение файла за экран=) то есть просто чтобы его не было видно на экране когда просматриваешь скрипт - для просмотра текста скрипта нужно было бы двигаться стрелкой вправо достаточно далеко=)
но это - глупое решение но простое для не до конца продвинутых юзверей=)
хотя и продвинутые не всегда на стрелку вправо жмут...
а так - более нормальное и сложное решение написано вверху...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 13-Май-05, 17:38  (MSK)
>
>Я никогда не возился до такой степени и наверное скажу жуткую глупость
>- но по моему на файл можно поставить права read и
>execute, а вот без read будет ли производится выполнение?

Не будет, поскольку перл скрипт является интерпритируемым, а следовательно читается и передается интерпритатору на выполнение

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от PoizOn emailИскать по авторуВ закладки(ok) on 13-Май-05, 18:50  (MSK)
>>
>>Я никогда не возился до такой степени и наверное скажу жуткую глупость
>>- но по моему на файл можно поставить права read и
>>execute, а вот без read будет ли производится выполнение?
>
>Не будет, поскольку перл скрипт является интерпритируемым, а следовательно читается и передается
>интерпритатору на выполнение
Попробуйте утилиту perlapp от ActiveState. Она имеется и под win и под nix. Хотя насчет freebsd Я не уверен что заработает (на линуксе работает точно).
Есть еще вариант по запудриванию мозгов юзеру. Помести функцию в которой определяется пароль к базе в отдельный модуль (желательно ОО), в скрипте напиши типа:

$db_password="blablabla";

при коннекте к базе используй $db_password, НО - переопредели этот параметр в функции из внешнего модуля, типа так,

какой-то код до коннекта к БД здесь переменная $db_password имеет значение blablabla

my $secret=Secret::OO::Function->new();

здесь переменная (она должна быть глобальной) уже имеет реальное значение.
далее коннект к базе.

Это конечно фэйк - но юзера даже немного шарящего в perl оттолкнет (или затруднит)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от zzz Искать по авторуВ закладки(??) on 14-Май-05, 01:06  (MSK)
А в чем глубинный смысл сокрытия пароля от юзера?
Что мешает завести отдельного пользователя БД и выдать ему права, которые не позволят делать телодвижения с объектами БД, превышающие функциональность скрипта?

>Всем привет!
>
>Есть скриптик на перл, взаимодействующий с базой данных
>Есть юзер, имеющий право этот скриптик запускать
>Есть пароль, записаный в скриптике для доступа к БД
>Есть права на чтение на этом скрипте для этого юзера, ибо без
>них скрипт не может быть выполнен.
>
>Хочется что бы умный юзвер не мог сказать more скрипт и прочитать
>пароль для БД.
>
>Кто нить может предложить какие либо варианты решения данной задачки?


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от PoizOn Искать по авторуВ закладки(??) on 15-Май-05, 21:08  (MSK)
>>Всем привет!
>>
>>Есть скриптик на перл, взаимодействующий с базой данных
>>Есть юзер, имеющий право этот скриптик запускать
>>Есть пароль, записаный в скриптике для доступа к БД
>>Есть права на чтение на этом скрипте для этого юзера, ибо без
>>них скрипт не может быть выполнен.
>>
>>Хочется что бы умный юзвер не мог сказать more скрипт и прочитать
>>пароль для БД.
>>
>>Кто нить может предложить какие либо варианты решения данной задачки?

Кстати, опять возвращаясь к этой теме (все таки интересно - даже не то чтобы смысл а вот задача - скрыть пароли в скрипте).
Так вот скрыть пароли на самом деле от простого пользователя хостинга у которого есть только фтп доступ, и нет ssh (или ssh - через jail) не просто - а очень просто.
Пишите свой модуль, самый обыкновенный можно, работающий через use (с Exporter), в котором определяете все пароли и т.п (можно использовать для многих пользователей), кладете его в @INC (/usr/lib/perl/site etc.) - то есть каталоги недоступные для просмотра с jail или ftp и используете его из своего скрипта. Суть в том, что методы модуля возвращают дескриптор подключения, и все. То есть в скрипте это может выглядеть так:

use MyModule;

my $dbh=DB_Connect(username,base_name);# передаем в функцию модуля имя пользователя (для многопользовательского скрипта) и имя базы данных.
Далее работаем с дескриптором $dbh как обычно.

В модуле можете создать хэш типа:

my %Access=(user1 => passwd,
            user2 => passwd
);

И использовать этот модуль для всех своих недоброжелательных пользователей.


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 16-Май-05, 09:52  (MSK)
>>>Всем привет!
>
>Кстати, опять возвращаясь к этой теме (все таки интересно - даже не
>то чтобы смысл а вот задача - скрыть пароли в скрипте).
>
>Так вот скрыть пароли на самом деле от простого пользователя хостинга у
>которого есть только фтп доступ, и нет ssh (или ssh -
>через jail) не просто - а очень просто.

К несчастью - это не хостинговый юзер, а типа пом сисадмина на удаленной точке, поэтому логин на тачку у него есть

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 16-Май-05, 09:50  (MSK)
>А в чем глубинный смысл сокрытия пароля от юзера?
>Что мешает завести отдельного пользователя БД и выдать ему права, которые не
>позволят делать телодвижения с объектами БД, превышающие функциональность скрипта?
>

Просто скрипт должен делать еще и update, а вот юзеру давать таких правов не хочется. Ибо апдейт идет строго на определенное поле (timestamp), а юзер своими шаловливыми рученками может поменять значение и других полей

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от allez Искать по авторуВ закладки(ok) on 16-Май-05, 09:59  (MSK)
Ну что, Dr. Nebula, на каком варианте решения задачи остановились?
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

18. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Dr. Nebula emailИскать по авторуВ закладки on 16-Май-05, 10:11  (MSK)
>Ну что, Dr. Nebula, на каком варианте решения задачи остановились?

Пока - лишил пользователя права на UPDATE и DELETE, оставив только SELECT и INSERT
основные значения в таблице сделаны первичными ключами, следовательно дубликатов даже при сильном желании сделать не сможет
Думаю вынести поле требующее обновления в отдельную таблицу и дать UPDATE только на нее
Хотя на мой взгляд это не самое красивое решение и нарушает логику БД

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

19. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от PoizOn emailИскать по авторуВ закладки(ok) on 16-Май-05, 11:15  (MSK)
>>Ну что, Dr. Nebula, на каком варианте решения задачи остановились?
>
>Пока - лишил пользователя права на UPDATE и DELETE, оставив только SELECT
>и INSERT
>основные значения в таблице сделаны первичными ключами, следовательно дубликатов даже при сильном
>желании сделать не сможет
>Думаю вынести поле требующее обновления в отдельную таблицу и дать UPDATE только
>на нее
>Хотя на мой взгляд это не самое красивое решение и нарушает логику
>БД

Может пирсмотреться к шифрованию пароля и дешифровки на лету?
Красивое решение - стоит того чтобы повозится.
Тут конечно все зависит от степени владения perl этим пом сисадмина.
Может быть тут хватит обычного MD5 и substr какого-то количества символов из хэша который и испоьзовать как пароль - но можно пойти дальше и присмотреться к Twofish например.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

20. "Конвертирование скрипта в исполняемый файл или варианты" 
Сообщение от Jelis emailИскать по авторуВ закладки(??) on 17-Май-05, 15:18  (MSK)
>Всем привет!
>
>Есть скриптик на перл, взаимодействующий с базой данных
>Есть юзер, имеющий право этот скриптик запускать
>Есть пароль, записаный в скриптике для доступа к БД
>Есть права на чтение на этом скрипте для этого юзера, ибо без
>них скрипт не может быть выполнен.
>
>Хочется что бы умный юзвер не мог сказать more скрипт и прочитать
>пароль для БД.
>
>Кто нить может предложить какие либо варианты решения данной задачки?

  Создай для выполнения скрипта отдельного юзера и группу
  Сделай этого юзера владельцем скрипта, разреши запуск/выполнение для
группы
  Скрипт сделай SUID'ным
  В группу добавь юзера который реально скриптом будет пользоваться
  Пароль храни в отдельном файле: владелец - фейковый юзер, права на чтение только у юзера ( для группы запретить )

  Но на самом деле такие проблеммы должны решаться в базе. А что за база?
  

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру