Выходной текстовый файл содержит только последнюю букву ожидаемого результата

IP-фильтрация лучше, чем ничего, но у нее есть две проблемы:

  1. IP-адреса могут быть подделаны.
  2. Если внутренняя машина скомпрометирована (включая клиента рабочая станция, например, через установку трояна), тогда злоумышленник может использовать это как хост-хост-хост или прокси-сервер для атаки вашей системы.

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

И если это действительно чувствительно, попросите специалиста по безопасности рассмотреть, что вы делаете.

изменить: кстати, если вы можете, выровняйте регулярное выражение и используйте что-то вроде tcpwrappers или брандмауэров в ОС, если оно имеет какой-либо. Или, если у вас может быть другой IP-адрес для вашего приложения, используйте брандмауэр для блокировки внешнего доступа. (И если у вас нет брандмауэра, вы можете также отказаться и отправить свои данные злоумышленникам: -)

0
задан rmaddy 18 January 2019 в 17:17
поделиться

1 ответ

Проблема возникает потому, что вы используете f-строку (f"> \n{l}") для форматирования текста и передаете переменную l в эту f-строку. Хотя ваша переменная l была установлена ​​в последний раз на последней итерации предыдущего цикла, вы печатаете последний элемент Y в вашем файле.

Правильный синтаксис был бы:

 with open("abc.txt", "w") as text_file:
     print(f'> \n{Y}', file=text_file) 

Или, может быть, это ваше отступление, и вы намеревались сделать это:

 for l in Y:
   print(l, end = '')

   with open("abc.txt", "w") as text_file:
     print(f'> \n{l}', file=text_file)

Кроме того, я бы порекомендовал вместо этого сделайте что-то вроде этого:

with open("abc.txt", "w") as f:
    for l in Y:
        f.write(f'> {l}\n')

Или даже лучше, если возможно:

with open("abc.txt", "w") as f:
    f.writelines(Y)
0
ответ дан olinox14 18 January 2019 в 17:17
поделиться
Другие вопросы по тегам:

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