Как я могу запустить Javascript на Django, не раскрывая статические файлы?

На моем Django сайте я использовал Stripe для интеграции платежей в .js файл.

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

Как я могу перестроить свою организацию файлов так, чтобы apple-pay.js не был общедоступен?

home.html

{% load static %}
<!DOCTYPE html>
<html>
<head>
    // Scripts for CSS and Stripe Pay
</head>
<body>
    <section>
        
       <div id="payment-request-button" data-amount="{{event.price}}" data-label=". 
          {{event.public_name}}">
                    <!-- A Stripe Element will be inserted here if the browser supports this type of payment method. -->
       </div>
       <div id="messages" role="alert"></div>

    </section>

</body>
</html>

apple-pay.js

document.addEventListener('DOMContentLoaded', async () => { 
    const stripe = Stripe('pk_mykeyishere'); //need to protect this information and the other functions from bad actors

    ///functions I run here
    
});

Моя файловая структура:

├── Procfile
├── README.md
├── db.sqlite3
├── interface
│   ├── migrations
│   ├── models.py
│   ├── static
│   │   ├── apple-developer-merchantid-domain-association
│   │   └── interface
│   │       ├── apple-pay.js <------------------
│   │       ├── CSS/other JS files
│   ├── templates
│   │   └── interface
│   │       ├── home.html <-------------------
│   ├── urls.py
│   └── views.py
├── manage.py
└── AppName
    ├── settings.py
    ├── urls.py
    └── wsgi.py

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

Интеграция Stripe не требует, чтобы вы помещали конфиденциальные данные в какой-либо файл JavaScript. Вы должны использовать эти данные на стороне сервера.

Вернуться на верх