Перейти к содержимому
  • 0
kaka888

Как сделать безопасный ввод данных?

Вопрос

Здравствуйте, уважаемые. При разработке программы появилась необходимость в способе безопасного ввода текста пользователем (через io.read(), наверное).

 

Но на ум не приходит ни одной идеи как сделать ввод безопасным, чтобы недоброжелательные хакеры не смогли крашнуть программу при вводе.
Или я что-то выдумываю и через io.read() нельзя ничего крашнуть? Например если очень много текста ввести, то io.read() может крашнуться и вызвать ошибку?


Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

2 часа назад, kaka888 сказал:

Например если очень много текста ввести, то io.read() может крашнуться и вызвать ошибку?

Теоретически переполнение озу, но компьютер просто выключится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
14 часа назад, NEO сказал:

Теоретически переполнение озу, но компьютер просто выключится.

Да, переполнение ОЗУ теоретически возможно.

При нехватке ОЗУ программа вылетит с ошибкой в консоль. Компьютер не выключится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я провёл эксперимент, вводя символы в io.read() с помощью автонажатий. С двумя планками памяти T3.5 пришлось ждать несколько часов, но я таки дождался переполнения памяти. Значит, может дождаться и хакер. Для противодействия хакерам можно вызывать io.read через pcall, но лучше, наверное, написать свою функцию для безопасного ввода текста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не надо костылять. io.read — это первая станция для ввода данных в прогу. Вторая станция — term.read, там есть пара параметров. Если надо что-то кастомное, как здесь, — пили свой ввод и накладывай ограничения сам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...