Задать вопрос
@KuvD

Как скрыть токен на сайте?

Всем привет.

Есть сайт, на нём форма, данные из которой отправляются в телеграмм бота. Обработка формы для отправки написана на js и поэтому токен бота можно увидеть в коде сайта.

Пробовал настраивать через переменные окружения, при помощи dotenv и php. Токен передается, но видимо что-то делаю не так. И как я понял при передаче из php в javascript мой токен снова становится виден всем в коде сайта.

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

Буду рад любой помощи.

Код, который берет токен из env файла выглядит так.

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

require 'vendor/autoload.php';

use Dotenv\Dotenv;

// Укажите путь к каталогу, где расположен .env файл
$dotenvPath = __DIR__;

// Создаем экземпляр Dotenv и загружаем переменные окружения
$dotenv = Dotenv::createImmutable(dirname(__DIR__));
$dotenv->load();

// Получаем значение токена
$TOKEN = $_ENV['TOKEN'];

// Используем токен в вашем коде...


?>
  • Вопрос задан
  • 1036 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 2
@Mylistryx
JS стучится на свой же сервер, а там PHP или что там на бэке уже CURL`ом отправляет запрос к телеге. В JS думаю никак токен не скрыть.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Сайт должен передавать данные на свой бэк, а уже бэк должен отправлять их в telegram. Для защиты от спама через ваш бэк используйте CSRF.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@KuvD Автор вопроса
Сделал скрипт на php, отправляет и файлы и сообщения. Но запутался в переменных. Так я получаю токен с файла env. Проверил, все работает, выводит на верху страницы.

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

require 'vendor/autoload.php';

use Dotenv\Dotenv;

// Укажите путь к каталогу, где расположен .env файл
$dotenvPath = __DIR__;

// Создаем экземпляр Dotenv и загружаем переменные окружения
$dotenv = Dotenv::createImmutable(dirname(__DIR__));
$dotenv->load();

// Получаем значение токена
$TOKEN = $_ENV['TOKEN'];

echo "TOKEN: $TOKEN";

// Используем токен в вашем коде...


?>


Для дальнейшего использования мне его нужно записать так?
$TOKEN= "TOKEN";


<?php
// process_form.php

// Токен бота и ID канала в Telegram
$TOKEN= "TOKEN";  
$TELEGRAM_CHAT_ID = "-1002017740876";

// Проверка наличия POST запроса
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Сбор данных из формы
    $product = $_POST['product'];
    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    $attachments = $_FILES['attachments'];
    $invoice = $_FILES['invoice'];


// Проверка наличия POST запроса
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Сбор данных из формы
    $product = $_POST['product'];
    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    $attachments = $_FILES['attachments'];
    $invoice = $_FILES['invoice'];

 остальной код

?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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