<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>26413</bug_id>
          
          <creation_ts>2011-10-05 12:51:46 +0400</creation_ts>
          <short_desc>Обеспечить возможность общаться с демоном непосредственно, через socket.</short_desc>
          <delta_ts>2012-07-20 11:35:12 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>alterator</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitriy Kruglikov">Dmitriy.Kruglikov</reporter>
          <assigned_to name="manowar@altlinux.org">manowar</assigned_to>
          <cc>anubix</cc>
    
    <cc>barabashka</cc>
    
    <cc>boyarsh</cc>
    
    <cc>cas</cc>
    
    <cc>gns</cc>
    
    <cc>imz</cc>
    
    <cc>manowar</cc>
    
    <cc>mike</cc>
    
    <cc>sem</cc>
    
    <cc>shakirov</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>125941</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitriy Kruglikov">Dmitriy.Kruglikov</who>
    <bug_when>2011-10-05 12:51:46 +0400</bug_when>
    <thetext>Для построения TUI для alterator необходимо и достаточно обеспечить возможность общаться с демоном через сокет, напрямую.
В каком-нибудь удобоваримом (XML?) формате.

При этом сохраняется вся существующая инфраструктура, к которой планируется добавить модульный TUI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125943</commentid>
    <comment_count>1</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2011-10-05 12:53:36 +0400</bug_when>
    <thetext>Давайте я попробую.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125955</commentid>
    <comment_count>2</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2011-10-05 15:53:04 +0400</bug_when>
    <thetext>У нас уже есть alteratord, имеющий /var/run/alteratord/.socket.
alterator-browser-qt тоже общается через Unix-сокет (/root/tmp/alterator/browser-sock) (насколько я знаю, обмен происходит через структуры Scheme). Осталось научится снифферить эти сокеты (ни через nc, ни через strace у меня это не получилось).

Считаю, что XML будет оверхедом. Если уже делать грамотно, то лучше JSON.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125956</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitriy Kruglikov">Dmitriy.Kruglikov</who>
    <bug_when>2011-10-05 16:01:17 +0400</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; Если уже делать грамотно, то лучше JSON.

Разработчики, которые обещали мне содействие в решении вопроса с TUI,
также произносили это слово.
+1 за JSON.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125958</commentid>
    <comment_count>4</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2011-10-05 16:04:56 +0400</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; насколько я знаю, обмен происходит через структуры Scheme
К browser-qt XML, обратно Scheme.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125962</commentid>
    <comment_count>5</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2011-10-05 16:10:00 +0400</bug_when>
    <thetext>(В ответ на комментарий №3)
&gt; JSON.
его синтаксис соответствует синтаксису JavaScript и это создает ряд проблем безопасности. Зачастую для обработки данных, полученных от внешнего источника в формате JSON, к ним применяется функция eval() без какой-либо предварительной проверки.
http://ru.wikipedia.org/wiki/JSON#.D0.92.D0.BE.D0.BF.D1.80.D0.BE.D1.81.D1.8B_.D0.B1.D0.B5.D0.B7.D0.BE.D0.BF.D0.B0.D1.81.D0.BD.D0.BE.D1.81.D1.82.D0.B8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125963</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2011-10-05 16:11:28 +0400</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; К browser-qt XML, обратно Scheme.
Преобразование ведётся в alterator-browser-qt, которая и держит сокет?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125966</commentid>
    <comment_count>7</comment_count>
    <who name="Nick S. Grechukh">gns</who>
    <bug_when>2011-10-05 16:21:52 +0400</bug_when>
    <thetext>&gt; формате JSON, к ним применяется функция eval() без какой-либо предварительной
&gt; проверки.

Ну и не надо применять eval. 

и вообще, YAML читабельнее.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125967</commentid>
    <comment_count>8</comment_count>
    <who name="barabashka">barabashka</who>
    <bug_when>2011-10-05 16:24:33 +0400</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; формате JSON, к ним применяется функция eval() без какой-либо предварительной
&gt; &gt; проверки.
&gt; 
&gt; Ну и не надо применять eval. 
&gt; 
&gt; и вообще, YAML читабельнее.

Что вы имеет против eval? Хотелось бы отметить, тот факт что в eval приезжает результат работы backend-а, который выполняется с правами root. Какая безопасность, о чем вы?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125968</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2011-10-05 16:31:38 +0400</bug_when>
    <thetext>(В ответ на комментарий №8)
&gt; Что вы имеет против eval? Хотелось бы отметить, тот факт что в eval приезжает
&gt; результат работы backend-а, который выполняется с правами root. Какая
&gt; безопасность, о чем вы?
Это для alteratord. Здесь же предлагается сделать общий сервер приложений с отдельным сокетом.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125970</commentid>
    <comment_count>10</comment_count>
    <who name="Dmitriy Kruglikov">Dmitriy.Kruglikov</who>
    <bug_when>2011-10-05 16:43:41 +0400</bug_when>
    <thetext>(В ответ на комментарий №9)
&gt; Здесь же предлагается сделать общий сервер приложений с отдельным сокетом.

Зачем отдельный?
alteratord уже сть. И сокет у него уже есть. И backend-ов много понаписано.

Не хватает только TUI для полного счастья.
Если alteratord будет уметь &quot;разговаривать&quot; с внешним миром посредством JSON или еще каким-то удобоваримым образом, то TUI может быть реализован в обозримом будущем.

Если сегодня в backend можно написать все, что угодно, вплоть до rm -rf /,
то о какой (без)опасности еще говорить?

Все останется в таком же виде.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125971</commentid>
    <comment_count>11</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2011-10-05 16:48:41 +0400</bug_when>
    <thetext>(В ответ на комментарий №8)
&gt; Что вы имеет против eval?
Не только. Там еще есть. А против того, что это потом начнут в веббраузер тащить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125975</commentid>
    <comment_count>12</comment_count>
    <who name="barabashka">barabashka</who>
    <bug_when>2011-10-05 17:53:06 +0400</bug_when>
    <thetext>(In reply to comment #10)


&gt; Если сегодня в backend можно написать все, что угодно, вплоть до rm -rf /,
&gt; то о какой (без)опасности еще говорить?
&gt; 
&gt; Все останется в таком же виде.

Отличный вид. (In reply to comment #11)
&gt; (В ответ на комментарий №8)
&gt; &gt; Что вы имеет против eval?
&gt; Не только. Там еще есть. А против того, что это потом начнут в веббраузер
&gt; тащить.

Там это где? Что тащить в веббраузер? Eval и так там уже. form.js -&gt; form_ajax()

Есть какая-то опасность, что от backend-а приедет s-выражение, которое потом будет преобразовано в некий json, который выполнится на стороне клиента и приведет к ужасному и страшному? (речь про alterator-fbi)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125976</commentid>
    <comment_count>13</comment_count>
    <who name="barabashka">barabashka</who>
    <bug_when>2011-10-05 17:53:57 +0400</bug_when>
    <thetext>(In reply to comment #10)

&gt; Если сегодня в backend можно написать все, что угодно, вплоть до rm -rf /,
&gt; то о какой (без)опасности еще говорить?
&gt; 

А что хочется то? Выполнять backend-ы под учетной записью пользователя?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125981</commentid>
    <comment_count>14</comment_count>
    <who name="Dmitriy Kruglikov">Dmitriy.Kruglikov</who>
    <bug_when>2011-10-05 19:01:39 +0400</bug_when>
    <thetext>(В ответ на комментарий №13)

&gt; А что хочется то? Выполнять backend-ы под учетной записью пользователя?

Дожить до того дня, когда комментирующие будут помнить о том, что все эти телодвижения ради TUI,
о чем написано в первой же фразе описания FR.

TUI, естественно, запускается от root.
Либо доступ к модулю также, как и в web-варианте.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125982</commentid>
    <comment_count>15</comment_count>
    <who name="Nick S. Grechukh">gns</who>
    <bug_when>2011-10-05 19:19:00 +0400</bug_when>
    <thetext>(In reply to comment #14)
&gt; TUI, естественно, запускается от root.

Типа, работающий с правами рута бэкэнд может провести атаку - передать пакет данных специального вида и выполнить произвольный код с правами рута?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125983</commentid>
    <comment_count>16</comment_count>
    <who name="Dmitriy Kruglikov">Dmitriy.Kruglikov</who>
    <bug_when>2011-10-05 20:09:30 +0400</bug_when>
    <thetext>(В ответ на комментарий №15)
 
&gt; Типа, работающий с правами рута бэкэнд может провести атаку - передать пакет
&gt; данных специального вида и выполнить произвольный код с правами рута?

Типа посредством TUI можно сделать все, то же, что и посредством alterator-qt
и/или через WEB-интерфейс.

Не больше, но и не меньше.

Не понимаю, в чем проблема.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125990</commentid>
    <comment_count>17</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2011-10-05 23:14:59 +0400</bug_when>
    <thetext>Товарищи, я просто хотел добавить text-&gt;xml-&gt;scm в качестве альтернативного преобразования к уже имеющемуся сейчас text-&gt;scm и всё (d.scm). Если получится, можно будет потом и text-&gt;json-&gt;scm прикрутить рядышком.

  Всё остальное останется как было: один alteratord, один сокет, и права рута в бакендах. В браузер тащить оттуда нечего.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126005</commentid>
    <comment_count>18</comment_count>
    <who name="Lenar Shakirov">shakirov</who>
    <bug_when>2011-10-06 10:44:57 +0400</bug_when>
    <thetext>(В ответ на комментарий №13)
&gt; А что хочется то? Выполнять backend-ы под учетной записью пользователя?

Я этого хочу, но в другой баге ;-)
https://bugzilla.altlinux.org/23377</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132360</commentid>
    <comment_count>19</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2012-07-20 11:35:12 +0400</bug_when>
    <thetext>(В ответ на комментарий №6)
&gt; (В ответ на комментарий №4)
&gt; &gt; К browser-qt XML, обратно Scheme.
&gt; Преобразование ведётся в alterator-browser-qt, которая и держит сокет?
Никакого преобразования не ведется.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>