Cesar Systems

Herramientas Informaticas

Cómo responder a un ataque de “Denegación de Servicio”

 

 

clip_image001No se puede evitar un abrumador ataque DDoS, pero se puede minimizar su impacto. He aquí cómo.

Los ataques de denegación de servicio (DoS) -particularmente el ataque distribuido de denegación de servicio (DDoS)-  han afectado a muchas empresas recientemente, desde Sony hata el Bank of America. 

Durante años, la mayoría de las compañías amortizaron los ataques DoS, como un riesgo aceptable, ya que la probabilidad de convertirse en víctima era relativamente bajo y el riesgo de daño a la empresa también lo era. Recientemente, sin embargo, esta clase de ataque ha aumentado en popularidad, haciendo que muchas organizaciones reconsideren el riesgo relativo. Directores ejecutivos están preocupados por la pérdida de ingresos y la mala prensa, las TI se preocupan por las aplicaciones bloqueadas y largas horas de trabajo.

Aunque no se puedan prevenir todos los ataques DDoS, hay opciones para limitar su eficacia y permitir que su organización se recuperé más rápido. En la mayoría de los recientes ataques contra aplicaciones Web, los atacantes simplemente envian más solicitudes que la aplicación Web puede manejar, lo que dificulta a los visitantes el utilizarla.

En este tipo de ataques, la mayoría de los atacantes no están preocupados por si el sistema y la aplicación se bloquea en realidad, aunque estarían felices si se produce un bloqueo. Su principal objetivo es evitar que los servicios ofrecidos por la compañía apuntada, responda a las peticiones de los usuarios legítimos, causando problemas para la empresa víctima.

Si usted tiene un control adecuado de la tecnología, estos ataques son fáciles de detectar. Su Network Operations Center (NOC) estará en status quo para el ancho de banda, las solicitudes por segundo y el uso de recursos del sistema con tendencia normal. Entonces, ya sea repentina o después de una pequeña cantidad de tiempo, todas estas tendencias se disparan hacia arriba, se alcanzará los umbrales, y las alertas se enviarán por el sistema de monitoreo.

En una organización típica, estos eventos darán lugar a una escalada en el NOC, y el equipo de TI se apresurará a conseguir a la gente indicada. Gestión recibirá un aviso de que los sitios y las aplicaciones están respondiendo inusualmente, y todos se preguntarán que por qué hay un gran aumento en las solicitudes en un período de tiempo tan corto.

A menos que su sitio haya sido mencionado en la portada de Slashdot, lo más probable es que usted esté experimentando el comienzo de un ataque DDoS. ¡Felicitaciones! Usted es ahora parte del club de las organizaciones que han sido objeto de un ataque DDoS -generalmente porque los atacantes no son seguidores de sus políticas corporativas, o porque se les paga para que ataquen.

El primer paso es analizar los registros de solicitudes.

Leer el resto de este artículo aquí.

Los problemas de seguridad dan a muchas empresas la pausa para que consideren migrar parte de sus operaciones de TI a servicios basados ​​en la nube. Pero se puede mantener la seguridad en la nube. En este informe del Centro de Lectura Dark Tech, que explicará los riesgos y le guiará en el establecimiento de políticas adecuadas de seguridad en la nube, los procesos y controles.

Leer el reporte de Dark Reading (Requiere de un registro gratuito para consultar).

Fuente: Information Week  JRS/GC

Aplicaciones web inseguras, la más grande amenaza de datos.

La mayoría de las empresas, a pesar de tener numerosas aplicaciones de misión crítica accesible a través de sus sitios web, fallan al asignar suficientes recursos financieros y técnicos para asegurar y proteger las aplicaciones Web, dejando los datos corporativos vulnerables al robo. Este es uno de los resultados de un estudio de Imperva, WhiteHat Security y el Instituto Ponemon.

clip_image001

Segun el estudio, la mayoría de los encuestados cree que las aplicaciones Web inseguras representan la mayor amenaza a los datos corporativos. Sin embargo, el 70 por ciento señaló que sus organizaciones no consideran la aplicación de seguridad como una iniciativa estratégica, ni tampoco creen que sus organizaciones tienen suficientes recursos específicamente en el presupuesto en la seguridad de aplicaciones Web para enfrentar el riesgo.

El estudio encontró que sólo el 18 por ciento de los presupuestos de TI en seguridad fueron asignados para hacer frente a la amenaza planteada para aplicaciones Web inseguras, mientras que el 43 por ciento de los presupuestos de TI en seguridad fueron asignados a las redes y seguridad de host, las áreas encuestadas parecían ser de menos preocupación.

De las 10 violaciones de datos en 2009, según la Organización de Derechos de Privacidad, el 93 por ciento de los registros comprometidos fueron robados como resultado de ataques maliciosos o criminales contra las aplicaciones Web y bases de datos – la mayoría de las empresas aún siguen estando muy expuestas.

clip_image002

El estudio de Ponemon reveló que el 61 por ciento de las organizaciones mencionaron tener hasta 100 aplicaciones Web expuestas al publico que realizan transacciones o accesan a millones de registros de clientes. Y además, la mayoría de las organizaciones no ha hecho una aplicación de seguridad de alta prioridad. La encuesta encontró que la gran mayoría de los desarrolladores están demasiado ocupados para responder a las cuestiones de seguridad Web.

“La mayoría de las más grandes y recientes violaciones de datos hasta la fecha han sido el resultado de los ataques contra las aplicaciones Web”, explicó Jeremiah Grossman, fundador de CTO y WhiteHat. “Para hacer frente a las amenazas cibernéticas actuales, las empresas deben cambiar su estrategia de seguridad – y presupuestos – de ser predominantemente basada en las infraestructuras y dar prioridad a los datos y aplicaciones directamente.

Recomendaciones

*No se puede asegurar lo que no sabe que posee – un inventario de sus aplicaciones Web para obtener mayor visibilidad de los datos que están en riesgo y donde los atacantes pueden explotar el dinero o los datos de la transacción.

*Asignar un defensor – Designe a alguien que puede impulsar y dirigir la seguridad de datos y esté altamente capacitado para dirigir numerosos equipos de soporte. Sin rendición de cuentas, la seguridad y el cumplimiento, sufrirán.

*No espere a que los desarrolladores tomen cargo de la seguridad – Implementar tecnologías de protección para mitigar el riesgo de vulnerabilidad en las aplicaciones Web.

*Cambie el presupuesto de la infraestructura para la seguridad de aplicaciones Web – Con la asignación de recursos, el riesgo empresarial puede ser dramáticamente reducido.

El estudio de Ponemon encuestó a 627 profesionales de TI y a más de 400 empresas multinacionales y organizaciones gubernamentales.

Fuente: Help Net Security  CLA/RS

Aplicaciones web experimentan más de 2,700 ataques por año

La media anual de incidentes de ataques a las 50 aplicaciones web monitoreadas fue de 274 veces por año, uno de los objetivos fue atacado más de 2,700 veces.

 

clip_image001

 

De acuerdo a un nuevo reporte de Imperva, el incidente de ataque promedio en las aplicaciones web observadas, duró 7 minutos y 42 segundos, pero el incidente de ataque más duradero fue de una hora y 19 minutos. Inyección SQL siguie siendo el vector de ataque más popular.
“Estos hallazgos indican una diferencia significativa entre un incidente promedio de ataque a aplicaciones web y el de mayor alcance”, dijo Amichai Shulman, Director de Tecnologías de Información en Imperva. “Creemos que las organizaciones que están preparadas solamente para un incidente promedio de ataque pueden ser seriamente afectadas por incidentes de ataque más grandes”.

El Reporte de Ataques a Aplicaciones Web (WAAR por sus siglas en inglés), creado como parte de la ya puesta en marcha Iniciativa de Inteligencia Hacker de Imperva, ofrece una visión de tráfico malicioso de ataques reales a 50 aplicaciones web en un periodo de seis meses, de diciembre de 2011 a mayo de 2012.

Imperva monitoreó y categorizó numerosos ataques individuales a través de Internet, así como ataques dirigidos a diferentes aplicaciones de empresas y de gobierno. El WAAR destaca la frecuencia, tipo y lugar de origen de cada ataque para ayudar a profesionales de la seguridad a priorizar la reparación de las vulnerabiliades.
Datos destacados del reporte incluyen:
SQL sigue siendo el vector de ataque más común: Imperva revisa y condensa las características acumulativas de vectores de ataque a aplicaciones web, incluyendo inyecci?o SQL, cross-site scripting (XSS), RFI y LFI, y observa que la inyección SQL es el ataque más comunmente usado para las 50 aplicaciones web observadas.
Se incrementa la intensidad de los ataques: Las aplicaciones comunmente verán sólo alguna acción de ataque serio aproximadamente cada tercer día y durante pocos minutos, pero los ataques pueden afectar a la aplicación si las defensas están preparadas solo para una intensidad de ataque promedio.
Francia lidera inyección SQL: Como se reportó en el WAAR anterior, la mayoría de las peticiones y ataques se originaron en EUA, países de Europa occidental, China y Brasil. Sin embargo, Francia se ha convertido en el principal origen de ataques de inyección SQL, siendo el volumen de ataque de peticiones originadas en Francia casi 4 veces más grande que el de EUA.
“El campo de batalla en la red parece mucho más una misión de protección de la frontera que una guerra mundial; la mayor parte del tiempo pasan pocas cosas, pero una que otra vez se presenta un estallido de ataques”, dijo Shulman. “Independientemente de la frecuencia de ataques y periodos de paz, creemos que las organizaciones necesitan estar preparadas para estas ráfagas de actividad durante incidentes de ataque”.

El reporte completo se encuentra disponible (en inglés) aquí.

Fuente: NetSecurity JS

Aplicaciones Web: nueva vulnerabilidad para la delincuencia informática

Las aplicaciones comunes incluyen correo electrónico, ventas en línea, subastas en línea, redes sociales, wikis, así como muchas otras funciones.

clip_image001

Durante una charla con Mandeep Khera, director ejecutivo de marketing de Cenzic Inc., comentó que según Cenzic Inc. y el Instituto Ponemon, 73% de las empresas tienen aplicaciones web inseguras, las cuales han sido vulneradas por lo menos una vez en los últimos 24 meses, sin embargo, las empresas gastan más en café al año que lo que gastan en la seguridad de sus aplicaciones web. Estas empresas se fían de sus firewalls de red para proteger su sitio web, pero esto es como usar un escudo de cartón en una lucha a espada.

Mandeep preguntó, “Si usted supiera que los ladrones se escabullen repetidamente a través de una puerta rota, ¿no le gustaría reparar esa puerta?”. Sin embargo, la mayoría de estas empresas prueba menos del 10% de sus aplicaciones contra huecos de seguridad, incluso después de ataques conocidos.

Según Mandeep, “El hacking ofrece buen dinero. El ingreso promedio mensual para un hacker es de $10,000.00 dolares. Y las empresas llevan décadas tratando de poder detener los ataques de estos piratas informáticos y los problemas que crean”. Las empresas tienen que empezar a invertir aún más en lo que respecta a la seguridad en línea.

Esto es lo que nosotros como consumidores podemos hacer para protegernos a nosotros mismos en línea:

  • Cuidar debidamente la observación de los sitios y asegurarse de que no sean falsos.
  • No hacer clic en los anuncios o ventanas emergentes.
  • Permitir ventanas emergentes sólo para sitios de confianza.
  • Actualizar su navegador a la última versión.
  • Buscar a través de Google para ver si un sitio es generalmente seguro.
  • Utilizar un número virtual de tarjeta de crédito que pueda caducar de inmediato.
  • Ejecutar software anti-spyware frecuentemente.
  • Utilizar un software de limpieza para eliminar las cookies.
  • Utilizar un buen anti-virus en su equipo.

Fuente: Computer Crime Research Center  JS/GC

Ejemplo de validación de formularios con JQuery

 

Código fuente del formulario

Descargar JQuery traducidos Aqui

   1: <html>

   2:     <head>

   3:         

   4:         

   5:         <?php $jjq = base_url()."js/jquery-latest.js";

   6:               $jja = base_url()."js/jquery.validate.js";

   7:     

   8:     echo "&lt;script src='$jjq'></script>
   1: ";

   2:     echo "<script src='$jja'>

   1: ";

   2:     

   3:     ?>

   4:  

   5:         <style type="text/css">

   6:  

   7:             * { font-family: Verdana; font-size: 96%; }

   8:             label { width: 10em; float: left; }

   9:             label.error { float: none; color: red; padding-left: .5em; vertical-align: top; }

  10:             p { clear: both; }

  11:             .submit { margin-left: 12em; }

  12:             em { font-weight: bold; padding-right: 1em; vertical-align: top;                     }

  13:         

  14:               

  15: 

  16:  

  17: function validar(esto){ 

  18: valido=false; 

  19: for(a=0;a<esto.elements.length;a++){ 

  20: if(esto[a].type=="checkbox" && esto[a].checked==true){ 

  21: valido=true; 

  22: break 

  23: } 

  24:  

  25: } 

  26: if(!valido){ 

  27: alert("Chequee una casilla!");return false 

  28: } 

  29:  

  30: }  

  31:  

  32:  

</script>

   1:   

   2:             <script type="text/javascript">

   3:  

   4: $(document).ready(function(){

   5: $("body div:last").remove();

   6: });

</script>

   1:  

   2:  

   3:          

   4:   $(document).ready(function(){

   5:  $("#registro").validate({

   6:   rules: {

   7:     nom_usu: {

   8:       required: true,

   9:       maxlength: 25,

  10:       minlength:    3

  11:     },

  12:     

  13:     login: {

  14:       required: true,

  15:        maxlength: 2,

  16:       minlength:    2,

  17:       number: true

  18:     },

  19:     

  20:     psw: {

  21:       required: true,

  22:        maxlength: 10,

  23:       minlength:    6,

  24:       number: true,

  25:       equalTo: "#psw1"

  26:  

  27:     },

  28:     

  29:     psw1: {

  30:       required: true,

  31:        maxlength: 10,

  32:       minlength:    6,

  33:       number: true

  34:  

  35:     },

  36:     

  37:     acceso: {

  38:       required: true

  39:     },

  40:     

  41:     

  42:     status: {

  43:       required: true

  44:     }

  45:   }

  46: });

  47:  

  48:   });

  49:   

</script>

   9:   

  10:   <style>

  11:       label{

  12:         width:150px;

  13:         display: inline-block;

  14:     }

  15:   </style>

  16:   

  17: </head>

  18: <body>

  19:   <div id="container" align="center">

  20:   

  21:   

  22:   <form id="registro" name="registro" onclick="return validar(this)" action="&lt;?=base_url()?>index.php/users/addUser" method="POST">

  23:     

  24:     

  25:     <b><label for="login">Usuario:</label></b>

  26:     <input type="text" name="login" id="login" onchange=""/> <br />

  27:     

  28:     

  29:     <b><label for="nom_usu">Nombre:</label></b>

  30:     <input type="text" name="nom_usu" id="nom_usu"/><br />

  31:     

  32:     <b><label for="psw">Contraseña</label></b>

  33:     <input type="password" name="psw" id="psw" /><br />

  34:     

  35:     

  36:     <b><label for="psw1">Repite contraseña</label></b>

  37:     <input type="password" name="psw1" id="psw1"/><br />

  38:     

  39:     <b><label>Tipo de usuario</label></b>

  40:     <select name="acceso" id="acceso">

  41:         <option value="0">Registrado</option>

  42:         <option value="1">Administrador</option>

  43:     

  44:     </select>

  45:     <br />

  46:     <br />

  47:     

  48:     <b><label>Estado de usuario</label></b>

  49:     Activado<input type="radio" name="status" id="status" value="1"/>

  50:     Desactivado<input type="radio" name="status" id="status" value="0"/>

  51:     

  52:     <br />

  53:     <br />

  54:     <br />

  55:     

  56:     

  57:     <b><label for="local">Llamadas locales</label></b>

  58:     <input type='checkbox' name="local" id="local" value='1' /> 

  59:     <br />

  60:     <br />

  61:     

  62:     <!--

  63:     Llamadas locales

  64:     Activadas

  65:     Desactivadas

  66:     

  67:     
-->

  68:     

  69:     <b><label for="ld_nacional">Llamadas a larga distancia nacional</label></b>

  70:     <input type='checkbox' name="ld_nacional" id="ld_nacional" value='1' />

  71:     <br />

  72:     <br />

  73:     <br />

  74:     <!--

  75:     Llamadas a larga distancia nacional

  76:     Activadas

  77:     Desactivadas

  78:     

  79:     

  80:     
-->

  81:     

  82:     <b><label for="cel_local">Llamadas a celular <br />local   </label></b>

  83:     <input type='checkbox' name="cel_local" id="cel_local" value='1' />

  84:     <br />

  85:     <br />

  86:     <br />

  87:     

  88:     <!--

  89:     Llamadas a celular 
local

  90:     Activadas

  91:     Desactivadas

  92:     

  93:     

  94:     
-->

  95:     

  96:     

  97:     <b><label for="cel_ld">Llamadas a celular a larga distancia</label></b>

  98:     <input type='checkbox' name="cel_ld" id="cel_ld" value='1' />

  99:     

 100:     <br />

 101:     <br />

 102:     <br />

 103:     

 104:     <!--

 105:     Llamadas a celular a larga distancia

 106:     

 107:     Activadas

 108:     Desactivadas

 109:     

 110:     

 111:     
-->

 112:     

 113:     <b><label for="internacional">Llamadas internacionales</label></b>

 114:     <input type='checkbox' name="internacional" id="internacional" value='1' />

 115:     <br />

 116:     <br />

 117:     <br />

 118:     <!--

 119:     Llamadas internacionales

 120:     Activadas

 121:     Desactivadas

 122:     

 123:     

 124:     

 125:     -->

 126:     

 127:  

 128:     <input type="submit" name="submit" value="Registrar"/><br />

 129:     

 130:     

 131:     

 132:     </form>

 133: </div>

 134: </div>

 135:  

 136:  

 137: </body>

 138: </html>

Vistas MySQL y Funciones en CodeIgniter

Vistas

¿Para que sirven?

Una vista en la base de datos MySQL Sirve para representar o interpretar los datos que se encuentran en las filas de las tablas.

Por ejemplo:

Cuando una columna guarda puros datos booleanos de ceros y unos al momento de realizar la consulta el usuario tiene que saber que significa estos valores, como cuando se guarda el tipo de usuario de un sistema que son “Administrador y Normal”, al administrador en la tabla se guarda como 1 y al usuario con el 0.

Código para crear la vista

 
   1: CREATE VIEW PRUEBA AS (

   2: select 

   3:     `user_control`.`ld_nacional` AS `ld_nacional`,

   4:     `user_control`.`cel_local` AS `cel_local`,

   5:     `user_control`.`internacional` AS `internacional`,

   6:     `user_control`.`cel_ld` AS `cel_ld`,

   7:     `user_control`.`local` AS `local`,

   8:     `user_control`.`nom_usu` AS `nom_usu`,

   9:     `user_control`.`id_usu` AS `id_usu`,

  10:     `user_control`.`login` AS `login`,

  11:     `user_control`.`psw` AS `psw`,

  12:     if((`user_control`.`acceso` = 0),'Normal','Administrador') AS `acceso`,

  13:     if((`user_control`.`status` = 0),'Desactivado','Activado') AS `status` 

  14:   from 

  15:     `user_control` 

  16:     )

Como pueden ver en los campos “acceso y status” hay un IF donde dice que si es igual a 0 mandara el valor de Normal y si es 1 mandara Administrador, en caso de status, si es igual a 0 pintara como Desactivado y si no es igual a 0 pintara como Activado.

Código tabla original

   1: CREATE TABLE `user_control` (

   2:   `id_usu` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,

   3:   `status` int(1) unsigned NOT NULL DEFAULT '1',

   4:   `nom_usu` varchar(25) NOT NULL,

   5:   `login` varchar(4) NOT NULL DEFAULT '0000',

   6:   `psw` varchar(40) CHARACTER SET latin1 COLLATE latin1_spanish_ci NOT NULL,

   7:   `local` tinyint(4) NOT NULL DEFAULT '0',

   8:   `ld_nacional` tinyint(4) NOT NULL DEFAULT '0',

   9:   `cel_local` tinyint(4) NOT NULL DEFAULT '0',

  10:   `cel_ld` tinyint(4) NOT NULL DEFAULT '0',

  11:   `internacional` tinyint(4) NOT NULL DEFAULT '0',

  12:   `acceso` tinyint(4) NOT NULL DEFAULT '0',

  13:   PRIMARY KEY (`id_usu`),

  14:   UNIQUE KEY `login` (`login`)

  15: ) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8;

 

 

Ahora la función en el modelo para cargar los datos, el archivo se llama usersModel.php

   1: public function getUsers(){

   2:         $data=$this->db->get('vista');

   3:         if($data->num_rows() >0){

   4:             return $data;

   5:         }else{

   6:             return false;

   7:             }

   8:     }

 

Ahora se manda llamar la función del modelo con la función getUsers desde el controlador, el archivo se llama Welcome.php

   1: public function getUsers(){

   2:         

   3:         if(isset($_SESSION['usuario'])){

   4:         //GUARDA EN LA VARIABLE $USERS TODOS LOS USUARIOS

   5:         $data['users'] = $this->usersModel->getUsers();

   6:     

   7:         $data['principal']="listusers.php";

   8:         

   9:                 //SE ASIGNA QUE PAGINA SE CARGAR PARA VISUALIZAR LOS DATOS

  10:                 $this->load->vars($data);

  11:                 $this->load->view('plantilla');

  12:         }else{

  13:         echo " alert('Acceso restringido')";

  14:         $data['principal']="acceso.php";

  15:         

  16:                 $this->load->vars($data);

  17:                 $this->load->view('plantilla');

  18:         }

  19:     }

 

Les dejo las vistas de la plantilla y la lista de usuarios por si la necesitan

 

 

listuser.php

   1:  

   2: <?php

   3:  

   4:  

   5: $eliminar = base_url()."imagenes/eliminar.fw.png";

   6: $actualizar = base_url()."imagenes/modificar.png";

   7:     

   8: function estadoImg($edo){

   9:     $palomita = base_url()."imagenes/v.fw.png";

  10:     $x = base_url()."imagenes/eliminar.png";

  11:     if($edo==1){

  12:         return "<img src=".$palomita.">";

  13:     }

  14:     else{

  15:         return "<img src=".$x.">";

  16:     }

  17: }

  18:  

  19:  

  20:  

  21: ?>

  22:         <script type="text/javascript">
   1:  

   2:         <!--

   3:         

   4:         function confirmacion(id) {

   5:         var answer = confirm("Esta seguro que desea eliminar")

   6:         if (answer){

   7:         alert("Ha confirmado eliminar")

   8:         location.href="deleteUserId/"+id

   9:         }

  10:         else{

  11:         alert("Cancelado")

  12:         }

  13:     }

  14:     

  15:     function actualizar(id) {

  16:         

  17:         location.href="updateUserId/"+id

  18:         

  19:     }

  20: //-->

</script>

  23:  

  24: <body>

  25:     

  26: <div id="container">

  27:  

  28:     <div id="body" align="center">

  29:         <h3>Mis Usuarios son</h3>

  30:         <p>hola</P>

  31:         <?php echo $_SESSION['usuario'];?>

  32:         

  33:         <div id="tabla">

  34:          

  35:             <table border="0" align="left">

  36:             

  37:             <form id="b" name="b" action="&lt;?=base_url()?>index.php/welcome/buscarUsuarios" method="POST">

  38:             <td><input type= "text" id="buscar" name="buscar" ></td>

  39:             

  40:             <td><input type="submit" id="arre" name="arre" value="buscar"&lt;/td></tr>

  41:             </form>

  42:             

  43:             

  44:             

  45:             

  46:             </table>

  47:             

  48:             <table border="0" align="center">

  49:             <tr bgcolor="#7362ec" align="center" onfocus="<?php echo "HOLA";?>">

  50:             

  51:             <td><b>Nombre</b></td>

  52:             <td><b>Usuario </b></td> 

  53:             <td><b>Estado de usuario </b></td> 

  54:             <td><b>Nivel de acceso</b></td>

  55:             <td><b>Llamadas locales permitidas</b></td>

  56:             <td><b>Llamadas celular local permitidas</b></td>

  57:             <td><b>Llamadas a celular  permitidas</b></td>

  58:             <td><b>Llamadas nacionales permitidas</b></td>

  59:             <td><b>Llamadas internacionales permitidas</b></td>

  60:             <td><b>Eliminar usuario</b></td>

  61:             <td><b>Modifiacar usuario</b></td>

  62:             </tr>

  63:             <tr>

  64:         

  65:             <?php

  66:             $colorfila=0;

  67:             

  68:             

  69:             if($users!=false){

  70:                foreach($users->result() as $row){

  71:                    if ($colorfila==0){ 

  72:                    $color= "#b5b5b5"; 

  73:                    $colorfila=1; 

  74:                     }else{ 

  75:                    $color="#f7f7f7"; 

  76:                    $colorfila=0; 

  77:                 }    

  78:                 echo "<tr bgcolor='".$color."' align='center'>";

  79:                 echo "<td>";

  80:                 echo "<a href=".base_url()."index.php/welcome/getUserId/".$row->id_usu.">";

  81:                 echo $row->nom_usu."</a> </td> <td>". $row->login."</td>

  82:                 <td> ".$row->status."</td>

  83:                 <td > ".$row->acceso."</td> 

  84:                 

  85:                 <td>". estadoImg($row->local)."</td>

  86:                 <td>". estadoImg($row->cel_local)."</td>

  87:                 <td>". estadoImg($row->cel_ld)."</td>

  88:                 <td>". estadoImg($row->ld_nacional)."</td>

  89:                 <td>". estadoImg($row->internacional)."</td>

  90:                 <td><a href=javascript:confirmacion($row->id_usu)><img src=$eliminar></a></td>

  91:                 <td><a href=javascript:actualizar($row->id_usu)><img src=$actualizar></a></td>";

  92:                 echo "</tr>";

  93:             }

  94:             

  95:         }

  96:         ?>

  97:         

  98:         </table>

  99:         </div>

 100:  

 101:     </div>

 102:  

 103:  

 104: </div>

 105:  

 106: </body>

plantilla.php

   1: <!DOCTYPE html>

   2: <html lang="en">

   3: <head>

   4:     

   5:     

   6:     <meta charset="utf-8">

   7:     <title>Usuarios ITLM</title>

   8:     <?php $estilo = base_url()."css/estilo.css";

   9:           $estiloMenu = base_url()."css/menu.css";

  10:     

  11:     

  12:           $logo = base_url()."/imagenes/logo.jpg";

  13:           $menu= base_url()."/js/menu.js";

  14:           $jjq= base_url()."/js/jquery.js";

  15:           

  16:       

  17:           echo "&lt;link rel='stylesheet' type='text/css' href='$estilo' media='all'>";

  18:           echo "<link rel='stylesheet' type='text/css' href='$estiloMenu' media='all'>";

  19:           echo "<script src='$jjq'></script>
   1: ";

   2:           echo "<script src='$menu'>

</script>";

  20:          

  21:           

  22:          

  23:     ?>

  24:            

  25: </head>

  26:  

  27: <body>

  28: <div align="center">

  29: <?php

  30:  

  31: $this->load->view('encabezado');

  32: $this->load->view($principal);

  33: $this->load->view('pie.php');

  34:  

  35: ?>

  36: </div>

 

Les dejo un video que vi por si se van iniciando al Framework  de CodeIgniter

[youtube http://www.youtube.com/watch?v=jhP6vVc7Yts&hl=en&hd=1]

Mapa mental intercepting filter

intercepting filter

UNIDAD 4. ARQUITECTURA DE PROTOTIPOS EMPRESARIALES

¿QUE ES UN RIESGO PARA UN PROYECTO DE SOFTWARE?

Un riesgo es aquel factor que influye negativamente en el éxito del proyecto. El riesgo en un proyecto de desarrollo de software incluye componentes técnicos y de conocimiento del mismo. Los temas de naturaleza organizacional constituyen los factores dominantes de los riesgos del proyecto, a la vez que son los que se tratan satisfactoriamente en menos de la tercera parte de los proyectos de desarrollo, entre ellos los conflictos entre departamentos, entre usuarios, el cambio del responsable ejecutivo del proyecto, volatilidad del personal, número de unidades de la organización implicadas y proyectos que involucran a múltiples proveedores.

¿CUAL ES LA IMPORTANCIA DE LA GESTION DE RIESGOS?

Para lograr producir aquello que el cliente requiere, en el plazo solicitado y ajustados al presupuesto asignado, se necesita desarrollar un proceso que incluya desde la etapa más temprana la gestión de los riesgos asociados a los requisitos, de forma que se contribuya al mejoramiento gradual del proceso de desarrollo y la gestión de un proyecto de software que logre la satisfacción del cliente.

La identificación y gestión de los riesgos asociados a los requisitos del software, individuales y a grupos de ellos, desde la fase de ingeniería de requisitos puede permitir minimizarlos, evadirlos y controlarlos. El enfrentamiento proactivo de los riesgos que pueden afectar al desarrollo o a la calidad de los requisitos y las acciones para evitarlos, permitirían minimizar problemas que persisten en el desarrollo de software. Son de mayor importancia los riesgos asociados a las principales características de calidad de los requisitos.

¿DEFINE LAS ETAPAS DEL MODELO DE GESTION DE RIESGOS?

· IDENTIFICACION DE RIESGOS

El Tratar de identificar riesgos es un criterio proactivo que busca identificar posibles factores de riesgo y tomar medidas de factores de riesgos y tomar medidas de aseguramiento o planes de contingencia para contrarrestarlos a ellos y a sus efectos.

Al realizar esta identificación podría hablarse de riesgos genéricos y riesgos específicos del producto.

LISTADO DE RIESGOS POTENCIALES

TIPO DE RIESGO

INDICADORES POTENCIALES

Tecnológico

Entrega retrasada del hardware o de la ayuda al software, muchos problemas tecnológicos reportados.

Personal

Baja moral del personal, malas relaciones entre los miembros del equipo, disponibilidad de empleo.

Organizacional

Chismorreo organizacional, falta de acciones por el administrador principal.

Herramientas

Rechazo de los miembros del equipo para utilizar herramientas, quejas acerca de las herramientas CASE, peticiones de estaciones de trabajo mas potentes.

Requerimientos

Peticiones de muchos cambios en los requerimientos, quejas del cliente.

Estimación

Fracaso en el cumplimiento de los tiempos acordados, y en la eliminación de defectos reportados.

ANALISIS DE RIEGOS

Durante este proceso, se considera por separado cada riesgo identificado y se decide acerca de la probabilidad y la seriedad del mismo.

No existe una forma fácil de hacer esto, Recae en la opinión del administrador del proyecto. No se hace una valoración con números precisos sino en intervalos.

RIESGO

PROBABILIDAD

EFECTOS

Los problemas financieros de la organización fuerzan a reducir el presupuesto del proyecto.

Baja

Catastrófico

Es imposible reclutar personal con las habilidades requeridas para el proyecto.

Alta

Catastrófico

El personal clave esta enfermo y no disponible en momentos críticos.

Moderada

Serio

Los componentes de software a reutilizarse contienen defectos que limitan su funcionalidad.

Moderada

Serio

Se proponen cambios en los requerimientos que requieren rehacer el diseño.

Moderada

Serio

La organización se reestructura de tal forma que una administración diferente se responsabiliza del proyecto.

Alta

Serio

La BD que se utiliza en el sistema no puede procesar muchas transacciones por segundo como se esperaba.

Moderada

Serio

El tiempo requerido para desarrollar el software esta subestimado.

Alta

Serio

Las herramientas CASE no se pueden integrar.

Alta

Tolerable

Los clientes no comprenden el impacto de los cambios en los requerimientos.

Moderada

Tolerable

La capacitación solicitada para el personal no esta disponible.

Moderada

Tolerable

La tasa de reparación de defectos esta subestimada.

Moderada

Tolerable

El tamaño del software esta subestimado.

Alta

Tolerable

PLANEACION DE RIESGOS

Se establece un plan de gestión del riesgo para cada uno de los riesgos clave identificados.

Depende del conocimiento y la experiencia del gestor del proyecto.

  • Estrategias de anulación o prevención.
  • Estrategias de disminución o minimización
  • Planes de contingencia.

RIESGO

ESTRATEGIA

Problemas financieros de la organización

Preparar un documento breve para el administrador principal que muestre que el proyecto hace contribuciones muy importantes a las metas del negocio.

Problemas de reclutamiento

Alertar al cliente de las dificultades potenciales y las posibilidades de retraso, investigar los componentes comprados.

Enfermedad del personal

Reorganizar el equipo de tal forma que haya traslape en el trabajo y las personas comprendan en de los demás.

Componentes defectuosos

Reemplazar los componentes defectuosos con los comprados de fiabilidad conocida.

Cambios en los requerimientos

Rastrear la información para valorar el impacto de los requerimientos, maximizar la información oculta en ellos.

Restructuración organizacional

Preparar un documento breve para el administrador principal que muestre que el proyecto hace contribuciones muy importantes a las metas del negocio.

Desempeño de la base de datos

Investigar la posibilidad de comprar una BD con alto desempeño

Tiempo de desarrollo subestimado

Investigar los componentes comprados y la utilización de una generador de programas.

SUPERVICION DEL RIESGO

Valora cada uno de los riesgos identificados para decidir si este es más o menos probable y cuando los efectos del mismo han cambiado.

  • Se hace una valoración después de alcanzar cada hito principal.
  • Encargado de riesgos:
  • Alertar sobre los riesgos del proyecto y evitar que los administradores y desarrolladores los ignoren en la planificación.
  • Buscar todas las razones por las cuales el proyecto puede fallar.
  • Supervisar la efectividad de los planes de reducción de riesgos.

Realizar el clásico análisis costo-beneficio para la prevención o el plan de contingencia del riesgo.

La supervisión del riesgo debe ser un proceso continuo y en cada revisión del progreso de la administración cada uno de los riesgos clave debe ser considerado por separado y discutido.

Modelado de implementación

Para que se usa un diagrama de despliegue

Se utiliza para modelar el hardware utilizado en las implementaciones del sistema y las relaciones entre sus componentes los elementos usados en este tipo de diagramas son:

  • Sistema empotrado
  • Sistema cliente-servidor
  • Sistema completamente distribuido

 

Que es un nodo

Es un punto de una onda estacionaria cuya amplitud es 0 un punto de interacción o unión de varios elementos que confluyen en el mismo lugar.

 

 

Representación de un nodo

image

 

 

Ejemplo de un diagrama de despliegue

image

 

Diagrama de despliegue

Es un diagrama tipo de lenguaje unificado de modelador, representa como un sistema de software es dividido en componente y muestra las desventajas entre estos campos puede ser usado para modelar cualquier arquitectura de sistemas.

Que es un componente

Componentes, acerca de las características de software, la elaboración de un definición única la utilización de una específica depende del contexto en donde se esté empleando el comportamiento de los acuerdos que se hagan dentro del marco de trabajo.

 

Representación de un componente

image

Ejemplo de diagrama de componentes

image

 

 

 

 

image

 

image

image

 

Modelo de arquitectura de interacción

Diagrama secuencial

image

 

image

 

Diagrama de despliegue

image

image

Especificación de requerimientos de software

La especificación de software es la descripción completa del comportamiento del sistema que se va a desarrollar

 

Diagramas UML usados en la ERS

Los diagramas utilizados en la ERS son:

  • Casos de usos
  • Diagramas de flujo
  • Interfaces graficas de usuario

 

Riesgos de un mal ERS

Los riesgos mas comunes al hacer una mala especificación de requerimientos de software es en primer lugar la perdida de tiempo del cliente como de nuestros empleado, a esto le sigue la perdida de dinero junto con un cliente irritado que hará ver a los demás la mala calidad del desarrollo.

 

Clasificación de los requerimientos

De usuario: Deben describir los requerimientos funcionales o no funcionales que sean comprensible para los usuarios.

De sistema: Son versiones extendidas de los requerimientos de usuario y suelen ser utilizadas por los ingenieros de software. Describe a detalle y explica como el sistema debe proporcionar los requerimientos del usuario. Debe ser una especificación técnica y consistente de un sistema.

 

Requerimientos funcionales y no funcionales

FUNCIONALES: Son aquellos procesos que están dentro del software que se esta desarrollando.

NO FUNCIONALES: Son aquellos requerimientos externos al software, como puede ser:

  • Sistema operativo en el que se instalara
  • Seguridad firewall que se recomienda para su funcionamiento

 

Diagramas de interacción

Modela el comportamiento dinámico del sistema el flujo de control en una operación. Describe la interacción entre objetos, los objetos interactúan atreves de mensajes para cumplir ciertas tareas. Las interacciones provén un “comportamiento” que se implementa en un caso de uso. Existen dos casos de imitación

 

Diagrama de colaboración

Enfatizan la organización industrial y recibe mensajes. Gráficamente es una selección, colección de vértices y aros.

 

Diagramas de secuencia

Ordena tiempo los mensajes. Este diagrama es una tabla que muestra objetos ordenados junto al y de las x y los mensajes, son ordenados en incremento del tiempo junto al eje de las y.

 

Simbología

image

 

Ejemplo de diagrama de colaboración

image

Página 106 de 143

Creado con WordPress & Tema de Anders Norén