ШІ-інструменти та скрипти
Перевірка застосунків Streamlit і Gradio
Перевіряйте застосунки Streamlit і Gradio перед розгортанням: secrets.toml, який потрапить у коміт git, введення користувача, що виводиться як HTML або виконується через eval, шляхи Gradio, що відкривають доступ до диска, API-ключі в коді, публічний запуск без входу.
Що ви отримаєте: 1 файл · 58.3 KB · ZIP
Переглянути варіанти купівліОпис товару
st.markdown(f"<h2>Notes for {name}</h2>", unsafe_allow_html=True) вставляє на вашу сторінку як HTML усе, що вводить відвідувач, а demo.launch(share=True, allowed_paths=["/"]) дає змогу будь-кому, хто має посилання, завантажити будь-який файл із вашого комп'ютера. Ця навичка знаходить такі помилки та інші наведені нижче помилки Streamlit і Gradio до того, як ви розгорнете застосунок або поділитеся ним, і пояснює, як виправити кожну.
Ваш агент запускає сканер для Python-файлів вашого застосунку (тих, що імпортують streamlit або gradio), .streamlit/config.toml, secrets.toml, а також Dockerfile, Procfile, compose-файлів і shell-скриптів, які запускають застосунок. Він відстежує значення, що надходять від відвідувачів (віджети введення, параметри запиту, завантажені файли, ім'я користувача, який увійшов, ключі session state, які заповнюють віджети та історія чату, довільні текстові аргументи обробників подій Gradio), через присвоювання і всередину власних допоміжних функцій файлу. Він вважає значення Gradio Dropdown, Radio, Slider і Number фіксованим вибором, розпізнає виправлення, як-от html.escape, shlex.quote, ast.literal_eval і пошук у сталій таблиці, враховує псевдоніми імпорту на кшталт import subprocess as sp, читає ваші файли .gitignore, щоб з'ясувати, чи виключено secrets.toml із git, і знає типові налаштування Streamlit і Gradio (захист XSRF і CORS увімкнено, st.html очищується, Gradio прив'язаний до 127.0.0.1 зі строгим CORS і ввімкненим очищенням чату). Він ніколи не запускає ваш застосунок і ні до чого не підключається. Результат: BLOCK, REVIEW або NOT FLAGGED, із зазначенням файлу, рядка, причини та безпечнішого підходу. Секрети ніколи не виводяться.
Що перевіряється
BLOCK (виправити до випуску)
- D01: secrets.toml зі справжніми ключами чи паролями, який не охоплює жодне правило .gitignore
- D02: введення відвідувача, що виводиться як HTML через unsafe_allow_html=True, st.html з дозволеним JavaScript, st.iframe або застарілий st.components.v1.html
- D03: allowed_paths, set_static_paths або GRADIO_ALLOWED_PATHS у Gradio, що охоплюють корінь диска, корінь розділу, домашню папку, /home, /Users, /root чи /etc
- D04: введення відвідувача, що потрапляє в eval, exec, compile, shell-команду або завантажувач у стилі pickle (pickle, joblib, dill, cloudpickle, pandas.read_pickle і подібні)
- D05: API-ключі та секрети, записані в коді застосунку, config.toml або файлах запуску (формати ключів провайдерів, випадкові на вигляд значення із «секретними» назвами, паролі в URL баз даних)
REVIEW (перевірити перед релізом)
- D11: launch(share=True) або server_name="0.0.0.0" у Gradio без auth чи auth_dependency
- D12: захист XSRF у Streamlit вимкнено або його cookie надсилається між сайтами
- D13: enableCORS = false у Streamlit або strict_cors=False у Gradio
- D14: завантаження без обмеження типу (st.file_uploader без type, файлові поля введення Gradio без file_types)
- D15: подробиці помилок, що показуються відвідувачам (show_error=True у Gradio, явне значення full або stacktrace для showErrorDetails у Streamlit)
- D16: sanitize_html=False у Gradio для Chatbot або Markdown
- D17: st.secrets, окремий секрет чи цілий розділ із нього або оточення процесу (зокрема getenv для ключа), що виводяться на сторінку
- D18: паролі для входу, записані в коді (кортежі auth у Gradio, перевірки password == "...", змінні з паролями)
Що входить до комплекту
- Сканер (Python 3.9+, лише стандартна бібліотека)
- Посібник із правил із причиною, безпечнішим підходом і посиланням на офіційну документацію для кожного правила
- Ризикований і безпечний приклади проєктів, а також реальний звіт сканера для ризикованого
Обмеження
Сканер читає кожен файл окремо і відстежує значення в лінійному порядку: значення, що передаються між модулями, зберігаються в атрибутах класів або формуються в розгалуженнях, не відстежуються, обробники Gradio, задані як методи класу або через functools.partial, не відстежуються, а Python-файли, які не імпортують ні Streamlit, ні Gradio, не перевіряються. Вивід Gradio gr.HTML не перевіряється, бо в документації Gradio не сказано, чи він його очищує. Сканер читає файли .gitignore, але не історію git, тому secrets.toml, закомічений до того, як його почали ігнорувати, не виявляється. Налаштування, зроблені в панелі хостингу (Streamlit Community Cloud, Hugging Face Spaces), не видно. debug=True у Gradio не потрапляє у звіт, бо ця опція лише залишає скрипт запущеним. NOT FLAGGED не є гарантією.
Вміст
Один ZIP-файл із 22 файлами: SKILL.md, сканер у scripts/ (8 файлів Python), references/rules.md (кожне правило з причиною та безпечнішим підходом) і examples/ (11 файлів прикладів плюс report.md, реальний результат роботи сканера на ризикованому прикладі).
Як користуватися: Це навичка для агента: папка з файлом SKILL.md і скриптами Python, які може запускати ШІ-агент для програмування, наприклад Claude Code, Cursor або Codex CLI. Розпакуйте архів у папку навичок вашого агента (для Claude Code: ~/.claude/skills/), а потім попросіть агента перевірити ваш проєкт. Скрипти також працюють самостійно з Python 3.9 або новішим, нічого встановлювати не потрібно. Вони лише читають ваші файли: без доступу до мережі, і нічого нікуди не надсилається.
Що ви отримаєте
1 файл · 58.3 KB
- streamlit-gradio-app-check-1.0.0.zipZIP · 58.3 KB
ШІ-інструменти та скрипти
Перевірка застосунків Streamlit і Gradio
Перевіряйте застосунки Streamlit і Gradio перед розгортанням: secrets.toml, який потрапить у коміт git, введення користувача, що виводиться як HTML або виконується через eval, шляхи Gradio, що відкривають доступ до диска, API-ключі в коді, публічний запуск без входу.
Getly відкрив завантажені файли й не знайшов нічого, що завадило б їх відкрити. Це не антивірусна перевірка і не оцінка якості.
Теги
Поширені запитання
Чи отримаю я доступ одразу?
Так. Це цифровий товар: ви можете завантажити його одразу після оплати, просто зі своєї бібліотеки.
Чи можна використовувати його в комерційних проєктах?
Так. Комерційне використання дозволено: користуйтеся в особистому бізнесі та в тому, що продаєте. Ви не можете перепродавати чи поширювати сам файл.
Яка у вас політика повернення коштів?
Ви можете запросити повернення коштів протягом 30 дн. Якщо щось не так, подайте запит зі свого замовлення, і команда Getly його розгляне.
Які формати та розміри файлів я отримаю?
Ви завантажите 1 файл - ZIP - загалом 58.3 KB.
Чи отримую я безкоштовні оновлення?
Так: коли продавець випускає нову версію, ви можете повторно завантажити свіжі файли зі своєї бібліотеки безкоштовно. Останні оновлення дивіться в журналі змін.
Ціна
$5.00



