Запутайте строки в Python

По умолчанию rails server будет принимать соединения только от localhost. Вы можете проверить это, посмотрев на вывод консоли:

Listening on localhost:3000, CTRL+C to stop

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

rails server --binding=0.0.0.0

Теперь вы должны увидеть:

Listening on 0.0.0.0:3000, CTRL+C to stop

Теперь вы можете подключиться к своему приложению Rails из любой точки вашей локальной сети, перейдя, например, к. http://192.168.0.111:3000.

9
задан BalusC 29 March 2010 в 12:40
поделиться

5 ответов

Если вы просто хотите предотвратить случайный просмотр пароля, вы можете рассмотреть возможность кодирования / декодирования пароля в / из base64 . Это ни в малейшей степени небезопасно, но пароль не будет случайно прочитан человеком / роботом.

import base64
# Encode password
encoded_pw = base64.b64encode(raw_pw)

# Decode password
decoded_pw = base64.b64decode(encoded_pw)
23
ответ дан 4 December 2019 в 08:16
поделиться

В первую очередь следует избегать хранения пароля в открытом виде. Это единственное «истинное» решение.

Теперь вы можете легко зашифровать пароль с помощью хэш-модуля (md5 и аналогичные модули в python 2.5 и ниже).

import hashlib
mypass = "yo"
a = hashlib.sha256(mypass).digest()
1
ответ дан 4 December 2019 в 08:16
поделиться

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

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

  • Вы можете установить права доступа к файлу как можно более жестко (т. Е. Доступ для чтения только той учетной записи, с которой работает ваша программа), в отличие от остальной части вашей программы, которую может прочитать больше людей.

  • Вы случайно не зарегистрируете ее в своей системе контроля версий!

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

Для обфустации вы можете использовать base64, как предлагается, или какую-то самодельную схему, такую ​​как XORing или дешифрование с другим ключом, хранящимся в другом месте, требуя обоих местоположений чтобы на него смотрели. Имейте в виду, что это не защищает от чего-либо, кроме оппортунистического серфинга по плечу (если это так) - убедитесь, что существует некоторый уровень реальной безопасности (включая очевидные, такие как физический доступ к машине!)

t случайно зарегистрируйте его в своей системе контроля версий!

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

  • Для обфустации вы можете использовать base64, как предлагается, или какую-то самодельную схему, такую ​​как XORing или дешифрование с другим ключом, хранящимся в другом месте, требуя обоих местоположений чтобы на него смотрели. Имейте в виду, что это не защищает от чего-либо, кроме оппортунистического серфинга по плечу (если это так) - убедитесь, что существует некоторый уровень реальной безопасности (включая очевидные, такие как физический доступ к машине!)

    t случайно зарегистрируйте его в своей системе контроля версий!

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

  • Для обфустации вы можете использовать base64, как предлагается, или какую-то самодельную схему, такую ​​как XORing или дешифрование с другим ключом, хранящимся в другом месте, требуя обоих местоположений чтобы на него смотрели. Имейте в виду, что это не защищает от чего-либо, кроме оппортунистического серфинга по плечу (если это так) - убедитесь, что существует некоторый уровень реальной безопасности (включая очевидные, такие как физический доступ к машине!)

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

  • Для обфустации вы можете использовать base64, как предлагается, или какую-то самодельную схему, такую ​​как XORing или дешифрование с другим ключом, хранящимся в другом месте, требуя обоих местоположений чтобы на него смотрели. Имейте в виду, что это не защищает от чего-либо, кроме оппортунистического серфинга по плечу (если это так) - убедитесь, что существует некоторый уровень реальной безопасности (включая очевидные, такие как физический доступ к машине!)

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

  • Для обфустации вы можете использовать base64, как предлагается, или какую-то самодельную схему, такую ​​как XORing или дешифрование с другим ключом, хранящимся в другом месте, требуя обоих местоположений чтобы на него смотрели. Имейте в виду, что это не защищает от чего-либо, кроме оппортунистического серфинга по плечу (если это так) - убедитесь, что существует некоторый уровень реальной безопасности (включая очевидные, такие как физический доступ к машине!)

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

    Чтобы скрыть, вы можете использовать base64, как предложено, или некоторую домашнюю схему, такую ​​как XORing или дешифрование с другим ключом, хранящимся в другом месте, требуя, чтобы оба местоположения были смотреть на. Имейте в виду, что это не защищает от чего-либо, кроме оппортунистического серфинга по плечу (если это так) - убедитесь, что существует некоторый уровень реальной безопасности (включая очевидные, такие как физический доступ к машине!)

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

    Чтобы скрыть, вы можете использовать base64, как предложено, или некоторую домашнюю схему, такую ​​как XORing или дешифрование с другим ключом, хранящимся в другом месте, требуя, чтобы оба местоположения были смотреть на. Имейте в виду, что это не защищает от чего-либо, кроме оппортунистического серфинга по плечу (если это так) - убедитесь, что существует некоторый уровень реальной безопасности (включая очевидные, такие как физический доступ к машине!)

    2
    ответ дан 4 December 2019 в 08:16
    поделиться

    Многие протоколы и средства, принимающие пароли, имеют способ указать ключевой файл, а не пароль. Эта стратегия, вероятно, здесь сработает; вместо того, чтобы жестко кодировать пароль, жестко запрограммируйте имя файла (или еще лучше, сделайте его параметром!). Вы можете даже пойти дальше SSH и отказаться от загрузки ключевых файлов, которые (1) не принадлежат текущему пользователю (2) доступны для чтения только этому пользователю.

    0
    ответ дан 4 December 2019 в 08:16
    поделиться

    Это во многом зависит от того, почему вы храните пароль и где, по вашему мнению, возникает проблема безопасности.

    Если вы храните или сопоставляете этот пароль с базой данных в future:

    На самом деле это не должно быть проблемой, но если вы обеспокоены, используйте шифрование пароля вашей базы данных на раннем этапе и сохраните его (SELECT PASSWORD ('mySamplePassword');), а затем сравните зашифрованную версию непосредственно в вашем более позднем query.

    Если вы сохраняете его для последующей передачи:

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

    Не зная еще нескольких подробностей о том, что вы делаете, на это как бы трудно ответить.

    0
    ответ дан 4 December 2019 в 08:16
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: