垃圾邮件麻省理工学院帮助verhindern静脉API
垃圾邮件麻省理工学院帮助verhindern静脉API
Jede * r geben萤石反馈。Sogar机器人,垃圾邮件发送者和更多。我们德国民主党公式的静脉hinzufugen“验证码”,嗯irgendwie伏尔机器人geschutzt祖茂堂盛,奥得河我们nutzen死API进行Drittanbieters。
我有密歇根州entschieden窝kostenlosenAkismet-Dienst祖茂堂nutzen,恩祖demonstrieren是不是人一杯API aufruft和体育人的估计值Aufruf“乐队”。
贝Akismet anmelden
Melde你kostenlos贝akismet.com一个。Anschließend erhaltst Du杯Akismet-API-Schlussel。
死Symob娱乐下载fony HTTPClient-Komponente verwenden
Anstatt一张位于祖茂堂verwenden,死死Akismet-API abstrahiert,了我们阿莱API-Aufrufe direkt ausfuhren。死HTTP-Aufrufe selbst auszufuhren是效率(和ermoglicht es爹妈,冯·艾伦Symfony-Debugging-Tools衡量集成麻省ob娱乐下载民主党Symfony分析器祖茂堂profitieren)。
明信片Spam-Checker-Klasse erstellen
Erstelle一张neue Klasse螺母src /
麻省理工学院的民主党以SpamChecker
,死的逻辑学des Aufrufs der Akismet-API bundeln der解释我的反应:
死HTTP-Client-Methode请求()
sendet杯post请求一个死Akismet-URL ($ this - >端点
)和麻省理工学院Parametern ubergibt ein数组。
死getSpamScore ()
方法有我去API-Response 3 Werte选择:
2
要是der Kommentar“offenkundiger垃圾邮件”坚持;1
要是der Kommentar垃圾盛konnte;0
der Kommentar要是没有任何垃圾邮件(火腿)。
提示
Verwende死besondere E-Mail-Adresseakismet-guaranteed-spam@example.com
,嗯das Ergebnis des api调用als祖茂堂erzwingen垃圾邮件。
Environment-Variablen verwenden
死SpamChecker
-Klasse stutzt西奇静脉汪汪汪akismetKey美元
论点。是不是贝姆Upload-Verzeichnis能帮我们es超级风景明信片自动装配
注释injizieren:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
- - - / src / SpamChecker.php+ + + b / src / SpamChecker.php@@ 3、6 + 3、7 @@名称空间的应用程序;使用App \实体\评论;+使用Syob娱乐下载mfony \ DependencyInjection \属性\ \组件自动装配;使用Syob娱乐下载mfony \ \ HttpClient \ HttpClientInterface合同;类SpamChecker @@ -11 7 + 12 7 @@类SpamChecker公共函数__construct(私人HttpClientInterface美元客户,——字符串akismetKey美元,+ #[自动装配(% env (AKISMET_KEY) %)]字符串akismetKey美元,){$ this - >端点= sprintf (https://%s.rest.akismet.com/1.1/comment-check, akismetKey美元);}
我们两种窝温特des Akismet-Schlussels sicherlich不节hinterlegen im代码,大刀verwenden我们stattdessen一张环境变量(AKISMET_KEY
)。
一张“echte”环境变量祖茂堂setzen奥得河窝在我们静脉.env.local
-Datei祖茂堂speichern,坚持Aufgabe der Entwickler * innen:
毛穴Produktivbetrieb sollte一张“echte”环境变量definiert了。
Das funktioniert肠道,但死Verwaltung祝Environment-Variablen萤石umstandlich了。在einem solchen秋天帽子Symfony一ob娱乐下载张“bessere”替代,es嗯要是死Speicherung solcher秘密可以。
秘密speichern
有Anstatt Environment-Variablen祖茂堂verwenden,萤石Symfony杯ob娱乐下载库杜(拥抱我)verwalten,民主党有秘密speichern kannst。静脉wichtiges Merkmal是Moglichkeit死去,窝拱顶im库祖茂堂committen(河口ohne窝Schlussel,嗯ihn祖茂堂offnen)。静脉weiteres großartiges Merkmal坚持,dass es杯拱顶职业环境verwalten萤石。
秘密信德verschleierte Environment-Variablen。
Fuge dem库窝Akismet-Schlussel hinzu:
1
美元ob娱乐下载symfony控制台的秘密:集AKISMET_KEY
1 2 3 4
请输入秘密值:>[好]秘密“AKISMET_KEY”加密“/ dev / config /秘密”;你可以提交它。
达我们的估计值Befehl das erste mal ausgefuhrt有帽子er请来两Schlussel im/ dev / config /秘密
-Verzeichnis erzeugt。Anschließend,达斯AKISMET_KEY
秘密im selben Verzeichnis gespeichert。
毛死的秘密在der dev环境kannst Du selb entscheiden, ob Du拱顶和Schlussel死去,死我/ dev / config /秘密
-Verzeichnis erzeugt wurden, committen想。
秘密能帮欧什uberschrieben了,indem一张gleichnamige Einvironment-Variable gesetzt将。
Kommentare垃圾uberprufen汪汪汪
去垃圾邮件祖茂堂苏晨,风景明信片einfache Moglichkeit sobald静脉诺伊尔Kommentar abgegeben将,besteht达林,窝Spam-Checker aufzurufen, bevor死在der Daten Datenbank gespeichert了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36
- - - / src /控制器/ ConferenceController.php+ + + b / src /控制器/ ConferenceController.php@@ 7,6 + 7,7 @@使用App \实体\会议;使用App \ \ CommentFormType形式;使用App \ Repository \ CommentRepository;使用App \ Repository \ ConferenceRepository;+使用App \ SpamChecker;使用原则\ ORM \ EntityManagerInterface;控制器使ob娱乐下载用Symfony \包\ FrameworkBundle \ \ AbstractController;使用Syob娱乐下载mfony \ DependencyInjection \属性\ \组件自动装配;@@ -35 6 + 36 7 @@类ConferenceController延伸AbstractController请求请求美元,美元会议,会议CommentRepository CommentRepository美元,+ SpamChecker SpamChecker美元,#【自动装配(% photo_dir %)]字符串photoDir美元,反应):{$评论=新的评论();@@ -53年6 + 55岁,17 @@类ConferenceController延伸AbstractController} $ this - > entityManager - >保存($评论);++ $上下文= (+“user_ip”= > $请求- > getClientIp (),+“user_agent”= >请求- >标题- >获取美元(“用户代理”),+“推荐人”= >请求- >标题- >获取美元(“推荐人”),+“永久链接”= > $请求- > getUri (),+);+如果(2 = = = $ spamChecker - > getSpamScore(评论,上下文美元)){+把新\ RuntimeException(“明目张胆的垃圾邮件,走开!”);+}+$ this - > entityManager - >冲洗();返回$ this - > redirectToRoute(“会议”,(“鼻涕虫”= > $会议- > getSlug ()));
Uberprufe, ob es einwandfrei funktioniert。
秘密im Produktivbetrieb verwalten
毛穴Produktivbetrieb unterstutzt平台。sh das Setzen明智的Environment-Variablen:
1
美元ob娱乐下载syob直播appmfony云:变量:创建——敏感= 1级=项目- y - name = env: =六边形abcdef AKISMET_KEY——值
是不是bereits erwahnt, konnte死Verwendung冯Symfony-Sob娱乐下载ecrets jedoch besser盛。不在Bezug死Sicherheit, sondern das秘密管理皮毛das Projektteam Bezug再见。阿莱秘密了im库gespeichert,和足球环境变量,杜死毛穴Produktivbetrieb verwalten你们,坚持Entschlusselungscode。Das ermoglicht es艾伦im团队,秘密zum Produktivsystem hinzuzufugen,欧什您要是keinen Zugriff Das Produktivsystem有汪汪汪。Das是jedoch点aufwandiger设置。
Erzeuge zunachst静脉Schlusselpaar毛穴Produktivbetrieb:
1
美元ob娱乐下载symfony控制台的秘密:生成密钥——env =刺激
在Linux和类似操作系统,使用
APP_RUNTIME_ENV =刺激
而不是——env =刺激
这避免了编译的应用程序刺激
环境:1
美元APP_RUNTIME_ENV = proob娱乐下载d symfony控制台的秘密:生成密钥
Fuge das Akismet-Secret毛穴嫩Produktivbetrieb民主党Produktiv-Vault hinzu:
1
美元ob娱乐下载symfony控制台的秘密:集AKISMET_KEY - env =刺激
Der成为Schritt besteht达林,窝Entschlusselungscode一个平台。sh祖senden indem setzt Du一张合理的变量:
1
美元ob娱乐下载syob直播appmfony云:变量:创建——敏感= 1级=项目- y - name = env: SYMFONY_DECRYPTION_SECRET——价值= ' php - r“回声base64_encode(包括(“配置/机密/刺激/ prod.decrypt.private.php”));””
杜kannst阿莱Dateien祖茂堂Git hinzufugen和committen;der Entschlusselungscode automatisch祖茂堂.gitignore
hinzugefugt,所以dass er聂commitet将。毛皮mehr Sicherheit kannst Du ihn·冯·我们lokalen计算机entfernen weil er ja修女im Produktivsystem verfugbar坚持:
1
美元rm - f配置/机密/刺激/ prod.decrypt.private.php