Как я могу запустить 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. Вы должны использовать эти данные на стороне сервера.