# Akció szállítási lehetőségek és a kifejezett TMS közzététel

> Teszt csrf, titkosítás, tömörítés és közzététel ellen valódi HTTP és TMS ahelyett, hogy feltételezzük, a metadata kényszeríti a viselkedés.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: hu
Content-SHA256: 2d584497864653eb67312042797e7c8973d3cab6b2c1672b4a99ec0ca866de15
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

A `total5@0.0.19`: `NEWACTION()` tárolja a `csrf`, `encrypt` és `compress` cselekvési metadatait, de nem állapítják meg, hogy a HTTP garantálja a nevüket javasolhat HTTp útvonalakon:

- A `csrf:true` önmagában token nélküli POST-ot is elfogad. Használj olyan middleware-t, amely a `DEF.onCSRFcheck()` függvényt hívja beállított `secret_csrf` mellett, mint itt: [csrf-protection](/en/total5/csrf-protection/).
- A `encrypt:true` egy kijelölt útvonalon hozzáadja a `@encrypt` metadatait, de ez a verzió még mindig elfogadja a JSON-t és visszatér a Json-t.
- A `compress:false` nem engedélyezi a szokásos HTTP gzip-t; a válaszkompresszió a `$httpcompress`-et követi, az ügyfél által elfogadott kódolás és a válaszméret.
- A `publish` kijelenti a TMS témát/programot.A cselekvés befejezése nem teszi közzé automatikusan az eredményt.Küldje ki a `$.publish(value)`-et kifejezetten, és szándékosan építse fel a nyilvános terhelést.Válassza ki a kiadandó mezőket, mielőtt `$.publish(value)`-et hívna.

A TMS üzenetek az adott témában való előfizetőknek mennek; az alkalmazás engedélyezése és a bérleti szabályok még mindig szerepelnek a kódjában.

```text config
secret_csrf : local-csrf-fixture-only
$tms : true
secret_tms : local-tms-fixture-only
$httpcompress : true
```

```js definitions/transport.js
NEWACTION('Transport|csrf', {
	csrf: true,
	input: '*value:String',
	action: function($, model) { $.callback(model); }
});
NEWACTION('Transport|encrypted', {
	encrypt: true,
	route: 'POST /encrypted/',
	input: '*value:String',
	action: function($, model) { $.callback(model); }
});
NEWACTION('Transport|compressed', {
	compress: false,
	action: function($) { $.callback({ text: 'abcdefghij'.repeat(400) }); }
});
NEWACTION('Transport|notice', {
	publish: 'value:String',
	input: '*value:String',
	action: function($, model) {
		$.publish({ value: model.value });
		$.success();
	}
});
```

```js controllers/transport.js
exports.install = function() {
	ROUTE('POST /csrf-option/ @json --> Transport|csrf');
	ROUTE('GET /compression-option/ --> Transport|compressed');
	ROUTE('POST /notice/ @json --> Transport|notice');
};
```
