CyberX

Unwired mind project homepage

Скоро выходит release RevolveR Contents Managemens Framework

Я не знаю как много людей работает над системами подобного рода и как долго решаются различные вопросы касающиеся архитектуры, гибкости API и масштабируемости, а также как проектируются интерфейсы и компоненты движка, но, мне, общем то удается создать конкурентную систему со своими особенностями под названием RevolveR CMF.

Это не framework в чистом виде и не система управления контентом. Это фреймворк уже включающий в себя все компоненты и функции системы управления контентом, но позволяющий масштабировать приложение по своему вкусу и предоставляющий богатый набор API.

Программирую CMF я одной парой рук, но, по секрету, имею достаточный состав людей, которые стоят за созданием RevolveR.

Изначально мы писали легкую альтернативу Drupal и взяли за основу принцип Node(узла), также мы использовали лаконичность системы Apple Mac OS и добавили множество своих примочек.

Что же в плане базиса входит в состав RevolveR CMF?

RevolveR в плане комплектации состоит из трех компонентов:

  • RevolveR DBX на бэкенд для связки с БД предоставляющийno no-SQL API для обращения к MySQL БД на связке статического быстрого и автоматического кэша.
  • RevolveR Frontend ‐ библиотека frontend на ES7 с полной поддержкой связки SOLID-REST на базе Fetch и умеющая анимировать любые свойства CSS включая transform матрицы в easing эффектах и удобное API для работы с DOM элементами, которое по функциональности не уступает jQuery.
  • RevolveR Core ‐ связка Front-Back с поддержкой классов обеспечения всех функций системы завязанная на принципе Route->Node->View.

Что сейчас имеется в функциях RevolveR CMF?

У нас есть не только поддержка регистрации, авторизации и личного кабинета пользователя. Мы также оснастили систему возможностью разделять роли пользоватлей, модерировать контент, категоризировать созданные страницы, а также управлять файлами.

В системе заложена персональная защита от XSS, MySQL Injections и сложная проверка на подобие CSRF c двойной проверкой доступа.

Персональная капча тройную степень защиты от обхода и написана с тройным шифрованием, которая участвует в проверках на CSRF.

Система имеет инсталлятор и поддержку мультиязычности, а также различные настройки интерфейса.

Масштабируемость RevolveR CMF?

Мы долго трудились над созданием no-SQL языка для выполнения запросов к БД MySQL. Сейчас это выглядит как язык описания структуры таблицы , который позволяет при помощи API создавать, удалять и модифицировать таблицы без использваония запросов MySQL. Это не ORM, но у нас есть даже поддержка автоматического ALTER TABLE, что позволяет на лету модицицировать структуру БД без написания запросов в чистом виде вообще.

Естественно, у нас есть поддержка расширений или модулей системы.

SEO RevolveR CMF?

Все напичкано легким и быстрым frontend с польностью семантической версткой. Google page insights дает 99/99 очков при использовании протокола http(https работает чуть медленнее).

Сама система рассчитана на BigData и выдает среднюю производительнгость в рамках 1Mb потребления памяти на вывод любой страницы и время выполнения для Shared хостинга ценой 100-200 рублей в месяц составляет 0.2 секунды.

Кроме того, теперь можно забыть про метрику и аналитику. RevolveR CMF оснащена свой системой статичтики, которая работает на базе чистого backend без участия JavaScript. Статистика показывает переходы с поисковых систем и сайтов, вычисляет коэффициент живых людей, а также показывает страну посещения и браузер пользователя с операционной системой. А кроме этого считает сколько пользователь провел времени на каждой посещенной странице.

Все, что нужно для SEO.

Когда release?

Сейчас мы заняты шлифовкой логики и алгоритмов, в также внедряем очень крутые предрелизные фишки и реализуем функционал встроенного форума. После этого будет первый Release RevolveR CMF.

Можно записаться в группу тестирования зарегистрировавшись на этом сайте и отправив личное сообщение админу CyberX.

Window.Crypto Subtle feuture

Tonight I have experience with testing window.crypto API. I want to add this solution to my front-end library and found a lot of issues.

Look at the code listing:


	// cipher
	cipher: async function(data, mode) {

		// generate vector
		let iv = window.crypto.getRandomValues(new Uint8Array(16));

		let decoder = new TextDecoder('utf-8');
		let encoder = new TextEncoder('utf-8');

		async function encrypt(key) {

			let encrypted = await window.crypto.subtle.encrypt( { name: "AES-CBC", iv }, key, encoder.encode(data) );

			return encrypted;

		}

		async function decrypt(key, data) {

			let decrypted = decoder.decode( await window.crypto.subtle.decrypt( {name: "AES-CBC", iv}, key, data) );

			return decrypted;
		}

		let key = await window.crypto.subtle.generateKey( {name: "AES-CBC", length: 256}, true, ["encrypt", "decrypt"] ).then((key) => { 
			
			window.cipher_keys = key;

		});

		var cipher_crypt;

		switch(mode) {	
			case 'encrypt':

				window.cipher_encrypt = await encrypt(window.cipher_keys);
				window.cipher_decrypt = await decrypt(window.cipher_keys, await encrypt(window.cipher_keys) );

				break;

		}

		//console.log( cipher_crypt );

		return [window.cipher_encrypt, window.cipher_decrypt]; // not work

	},

Subtle Crypto is very stupid solution because uses a lot of async and await with promise.

First we can provide a key for decrypting and encrypting thats cant return key object in variable but drop it into then() function tail. From body of this function we can't store key object anything instead of window object.

We need to convert data for encoding and decoding into ArrayBufferView but not all browsers have text encoder and decoder in core.

Also we can't return executed data from wrapper function because crypto blocks return. Ok I have luck with dropping crypto functions result into windows object and it's a only one way to get encrypted or decrypted data.

Also output after ArrayBufferView decoded string contains Chinese letters. Not possible to provide key in plain string format to make synchronization with back-end using same cryptographic algorithms.

To many problems and issues contains new Subtle Crypto future. Need to wait final release that's work identical in all browsers.

For now you can play with example of Subtle Crypto and try to make this API better and you can find more out of 10 errors in realization this future.

New RevolveR CMF secure Captcha

A long time we think about how to protect RevolveR CMF installations and have many time to do XSS and SQL Injections protection. Also we made bot and spam security based on captcha.

For any routes Core generates personal hashes and patterns user need to repeat. Hashes lives only 30 minutes and will be destroyed when user leave a page contains any forms. This is not a final step to make captcha better. We seriously think about using frontend-backend sides Crypto techniques to secure POST data.

How it works? First, captcha generates personal for any route pattern contains coordinates, shuffle this data, add roman letters to make analyze impossible, add hash contains time and secret data. Next when page renders captcha perform FETCH POST query to generate keys, pattern and render canvas pattern that's example to user input when they make submit contents posting. Before submit captcha makes some magic to rearrange inputted coordinates and shuffle it again. Next it will send to SERVER where Core functions make check a path of posted data, check hashes and time.

For now this solution works perfect for blocking auto spam programs, denied possibility of brutforce and hacking.

Now we want to make advances encryption of internal captcha data using browser based Crypto techniques with Backend Crypto algorithms to make all better. So. Next we have to upgrade RevolveR Frontend library with new Crypto futures.

RevolveR CMF v.1.6 development state

As you know we was remake our RevolveR CMS(content management system) to RevolveR CMF(content management framework). What is it?

CMF is not a system but it includes must of futures of CMS such as contents management, supports of users and roles, file uploads and many other. It's not a plain framework but it includes all framework futures intended to develop flexible backend applications with options such as Data Base API, large specter of helpful Classes and good Core.

Now we at ending of testing pre release with multi language support. We made two translations of interface for English and Russian languages. In Core futures available to create contents for different languages and switch interface language for current user with ignoring of global website setting. Also we look at translators to make our CMF more accessible for all planet. Sign Up.

Other new futures should be surprise for our users.

RevolveR CMF multi language update testing

Hello, friends. I have a great news about next release of RevolveR CMF version 1.6.

Many works are done and we have to do live testing next generation of RevolveR CMF with multi language support. Whats new also you can read below.

To many critics about Object Oriented Programming in RevolveR CMF are not complete

Ok, guys. We not use extends because we develop only core at this first steps thats is not intended to be extended. Not any class of core used libraries should not be extended by third party extensions. All needed methods of core classes for third party extensions not included in core have public static properties. Inner methods executable inside classes by primary classes methods of RevolveR CMF always have protected properties. Not needed to get access for them because it's only for this class inner execution. About how to programming for RevolveR CMF will be created documentation in feature.

RevolveR CMF
RevolveR CMF

However, I also add protected and private properties for OOP. Why it's primary critic I don't know. Also I don't like Objects in PHP because it's not conveniently and uses more memory, CPU time and to many code lines for it.

Multi language

For this time when you read an article released no much more.

I have no skills in translation all languages in the World and for now Interface of RevolveR CMF have only English version. In future We can add Russian translation also. Also we have to create translate engine for templates and extensions developers thats should generate translation variables. Need translators.

Released url concatenation with two symbols country language code of Nodes for better SEO. Released batch creation of Nodes for many languages at once when you create node for default language. Users can choose what nodes they want to display on main page(default for English). Sidebars also displays only nodes for chosen language. In SPAx view and view with sidebars showed comments for all languages.

Added semantic layout for links, html and article tags with language codes.

Categories route for now displays all nodes by country segments.

Wanted database of Country Codes with Region Codes

I can't find complete database with hreflang and lang country codes. Now released only codes looking like [en, gb, us, fr, etc] but we need codes with region alignment looks like [en-US, en-Gb, fr-CA]. If you know anything about it please leave a comment.

What in progress for next release

Some optimizations, some customization language, additions for categories and interface translations.

You can touch all of we release for now on this site and leave a comment about what you want to add before we have to make final production release.